2

次のコードを使用して、ftpサーバーにファイルをアップロードするためにftplibを使用しています

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 サーバー上の一部のディレクトリとファイルが欠落しています。

そのため、zipファイルをftpにアップロードしてftpサーバーに抽出することにしましたが、ftpサーバーに存在するファイルを抽出する方法が見つかりません。

これどうやってするの?または、複数のディレクトリとファイルを ftp サーバーにアップロードするための他のより良い方法

4

2 に答える 2

0

ディレクトリを再帰的に調べて、ftp 経由でアップロードしてみてください。これは、Web サービスなしでサーバー上のファイルを解凍するよりもはるかに簡単だと思います。

于 2013-04-10T11:35:55.980 に答える