C#でFluentFTPを使用してFTP転送を実装しようとしています。ディレクトリ一覧の取得は非常に簡単ですが、ファイルのダウンロードに行き詰まっています。
コメントに例が含まれている記事を1つ見つけましたが、FtpFileクラスのソースが見つからないため、コンパイルできません。
FluentFTPを使用してFTPサーバーからファイルをダウンロードする方法の例はありますか?
編集:ここにいくつかの例を見つけました https://github.com/hgupta9/FluentFTP しかし、方法の例はありません実際にファイルをダウンロードします。
この記事の無料FTPライブラリには例がありますが、コンパイルされません。これは例です
FtpClient ftp = new FtpClient(txtUsername.Text, txtPassword.Text, txtFTPAddress.Text);
FtpListItem[] items = ftp.GetListing();
FtpFile file = new FtpFile(ftp, "8051812.xml"); // THIS does not compile, class FtpFile is unknown
file.Download("c:\\8051812.xml");
file.Name = "8051814.xml";
file.Download("c:\\8051814.xml");
ftp.Disconnect();
EDIT:ソリューション
見つけた記事には、私を間違った方向に向かわせる例が含まれていました。かつてのダウンロード方法があったようですが、それは今ずっと前になくなっています。したがって、答えはそれを手放してOpenRead()メソッドを使用してストリームを取得し、そのストリームをファイルに保存することでした。
FluentFTPの最新バージョンに組み込まれたDownloadFile()
およびUploadFile()
メソッドが追加されました。
https://github.com/robinrodricks/FluentFTP#example-usage からの使用例:
// connect to the FTP server
FtpClient client = new FtpClient();
client.Host = "123.123.123.123";
client.Credentials = new NetworkCredential("david", "pass123");
client.Connect();
// upload a file
client.UploadFile(@"C:\MyVideo.mp4", "/htdocs/big.txt");
// rename the uploaded file
client.Rename("/htdocs/big.txt", "/htdocs/big2.txt");
// download the file again
client.DownloadFile(@"C:\MyVideo_2.mp4", "/htdocs/big2.txt");