是否可以使用C#在FTP中压缩文件夹?
如何使用C代码压缩FTP服务器上现有的文件夹?有没有其他方法可以从FTP快速下载文件 我使用下面的代码从服务器压缩和下载文件是否可以使用C#在FTP中压缩文件夹?,c#,.net,download,ftp,zip,C#,.net,Download,Ftp,Zip,如何使用C代码压缩FTP服务器上现有的文件夹?有没有其他方法可以从FTP快速下载文件 我使用下面的代码从服务器压缩和下载文件 using (ZipFile zip = new ZipFile()) { zip.AlternateEncodingUsage = ZipOption.AsNecessary; zip.AddDirectoryByName("Preview_" + id); foreach (var item in lstpp) { f
using (ZipFile zip = new ZipFile())
{
zip.AlternateEncodingUsage = ZipOption.AsNecessary;
zip.AddDirectoryByName("Preview_" + id);
foreach (var item in lstpp)
{
foreach (var itm in item.ImageList)
{
string filePath = itm.pPath;
zip.AddFile(filePath, "Preview_" + id);
}
}
response.Clear();
Response.BufferOutput = false;
string zipName =
String.Format("Preview_" + id + ".zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss"));
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "attachment; filename=" + zipName);
zip.Save(Response.OutputStream);
Response.End();
}
但是它不能被重新用于FTP下载。这是不可能的
FTP协议中没有用于在服务器上压缩文件的API
除了FTP访问之外,还有SSH访问,这并不少见。如果是这种情况,您可以连接SSH并在服务器上执行
zip
shell命令来压缩文件。然后,您可以使用FTP协议下载ZIP文件(尽管如果您具有SSH访问权限,您也将具有SFTP访问权限。然后,使用SFTP而不是FTP)
一些(很少)FTP服务器提供API,使用
SITE EXEC
命令(或类似命令)执行任意shell(或其他)命令。但这真的很少见。您可以使用与上面SSH相同的API。我假设这是客户端代码(在接收文件的一侧运行)?您只能直接在服务器上处理该文件。因此,除非FTP具有流压缩功能,否则就没有什么可以做的了。