Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用C#在FTP中压缩文件夹?_C#_.net_Download_Ftp_Zip - Fatal编程技术网

是否可以使用C#在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

如何使用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协议中没有用于在服务器上压缩文件的API


除了FTP访问之外,还有SSH访问,这并不少见。如果是这种情况,您可以连接SSH并在服务器上执行
zip
shell命令来压缩文件。然后,您可以使用FTP协议下载ZIP文件(尽管如果您具有SSH访问权限,您也将具有SFTP访问权限。然后,使用SFTP而不是FTP)



一些(很少)FTP服务器提供API,使用
SITE EXEC
命令(或类似命令)执行任意shell(或其他)命令。但这真的很少见。您可以使用与上面SSH相同的API。

我假设这是客户端代码(在接收文件的一侧运行)?您只能直接在服务器上处理该文件。因此,除非FTP具有流压缩功能,否则就没有什么可以做的了。