如何使用 C# 代码压缩 FTP 服务器上现有的文件夹?有没有其他方法可以从 FTP 快速下载文件?
我使用下面的代码从服务器压缩和下载文件。
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 协议(protocol)中没有用于服务器上 ZIP 文件的 API。
除了 FTP 访问之外,还具有 SSH 访问权限,这种情况并不罕见。如果是这种情况,您可以通过 SSH 连接并在服务器上执行 zip shell 命令来压缩文件。然后您可以使用 FTP 协议(protocol)下载 ZIP 文件(尽管如果您具有 SSH 访问权限,您也将具有 SFTP 访问权限。然后,使用 SFTP 而不是 FTP。)。
一些(极少数)FTP 服务器提供 API 来使用 SITE EXEC
命令(或类似命令)执行任意 shell(或其他)命令。但这确实非常罕见。您可以像上面的 SSH 一样使用此 API。
关于c# - 是否可以使用 C# 对 FTP 中的文件夹进行 ZIP 压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42153658/