2

我正在使用ftplib使用以下代码在 ftp 服务器上上传文件

FtpConnection ftp = new FtpConnection(serverip, ftpuser, ftppassword);
ftp.Open();
ftp.Login();
ftp.SetCurrentDirectory("domain/wwwroot");

    void CreateDirOnFtp(string sDir, FtpConnection ftp)
            {
                try
                {
                    foreach (string f in Directory.GetFiles(sDir))
                    {
                        Uri uri = new Uri(f);
                        ftp.PutFile(f, System.IO.Path.GetFileName(uri.LocalPath));
                    }

                    foreach (string d in Directory.GetDirectories(sDir))
                    {
                        string dirname = new DirectoryInfo(d).Name;

                        if (!ftp.DirectoryExists(dirname))
                        {
                            ftp.CreateDirectory(dirname);
                        }

                        ftp.SetCurrentDirectory(dirname);
                        CreateDirOnFtp(d, ftp);
                    }
                }
                catch (System.Exception e)
                {
                }

            }

但是这段代码并没有遍历所有目录,因此丢失了 ftp 服务器上的一些目录和文件。

所以我决定在 ftp 上上传 zip 文件并在 ftp 服务器上提取它,但我找不到任何方法来提取存在于 ftp 服务器上的文件。

我怎样才能做到这一点?或任何其他更好的方式在 ftp 服务器上上传多个目录和文件

4

2 回答 2

0

您不能告诉服务器使用 FTP 协议提取文件。为此,您需要创建一些 Web 服务来在上传后提取它,或者一些计划任务来提取它找到的所有 zip。

如果您要创建一个 Web 服务,那么可以完全放弃 FTP 上传。服务方法可以接受压缩内容并在服务器端提取它。

于 2013-04-10T10:53:53.560 回答
0

尝试递归浏览您的目录并通过 ftp 上传。我认为这比在没有网络服务的情况下在服务器上解压缩文件要简单得多。

于 2013-04-10T11:35:55.980 回答