FTPサーバー(ラズパイ)からFTPクライアント(PC)にファイルをダウンロードしたい.
Visual Studio2019を使用しています.FluentFTPが推奨されているようなのでそちらを使用しております.エラーはなく,そのまま処理されますがダウンロードパス先にはダウンロードされたファイルはありません.なぜでしょうか?
ご不明な点がございましたらご質問ください.よろしくお願いします.
デバッグ(長いので割愛しました)
11-10 09:42:34.662 I/mono-stdout( 8716): 接続しました 接続しました Thread started: <Thread Pool> #7 11-10 09:42:34.916 I/mono-stdout( 8716): ダウンロードしました ダウンロードしました 11-10 09:42:34.953 D/OpenGLRenderer( 8716): Skia GL Pipeline 11-10 09:42:35.036 D/ ( 8716): HostConnection::get() New Host Connection established 0xcc5fea00, tid 8758 11-10 09:42:35.048 I/ConfigStore( 8716): android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0 11-10 09:42:35.049 I/ConfigStore( 8716): android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0 11-10 09:42:35.049 I/OpenGLRenderer( 8716): Initialized EGL, version 1.4 11-10 09:42:35.049 D/OpenGLRenderer( 8716): Swap behavior 1 11-10 09:42:35.050 W/OpenGLRenderer( 8716): Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without... 11-10 09:42:35.052 D/OpenGLRenderer( 8716): Swap behavior 0 11-10 09:42:35.126 D/EGL_emulation( 8716): eglCreateContext: 0xe6c855a0: maj 3 min 0 rcv 3 11-10 09:42:35.157 D/EGL_emulation( 8716): eglMakeCurrent: 0xe6c855a0: ver 3 0 (tinfo 0xe6c83e40) 11-10 09:42:35.291 D/EGL_emulation( 8716): eglMakeCurrent: 0xe6c855a0: ver 3 0 (tinfo 0xe6c83e40)
該当のソースコード
Visual
1using Android.App; 2using Android.OS; 3using Android.Support.V7.App; 4using Android.Runtime; 5using System.Net; 6using System; 7using FluentFTP; 8using System.Security.Authentication; 9 10namespace FTPClient 11{ 12 [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)] 13 public class MainActivity : AppCompatActivity 14 { 15 protected override void OnCreate(Bundle savedInstanceState) 16 { 17 base.OnCreate(savedInstanceState); 18 Xamarin.Essentials.Platform.Init(this, savedInstanceState); 19 // Set our view from the "main" layout resource 20 SetContentView(Resource.Layout.activity_main); 21 FtpClient client = new FtpClient(); 22 23 client.Host = "192.168.3.6"; 24 //client.Port = 21; 25 // 資格情報の設定 26 client.Credentials = new NetworkCredential("pi", "itolab"); 27 // 要求の完了後に接続を閉じる 28 client.SocketKeepAlive = false; 29 // プロトコルはTls 30 client.SslProtocols = SslProtocols.Tls; 31 // 接続タイムアウトを5秒に設定 32 client.ConnectTimeout = 60000; 33 // 証明書の内容を確認しない 34 client.ValidateCertificate += new FtpSslValidation(OnValidateCertificate); 35 36 try 37 { 38 // 接続 39 client.Connect(); 40 Console.WriteLine("接続しました"); 41 // ファイルのダウンロード 42 client.DownloadFile(@"C:\Users\2.jpg", "/Pictures/2.jpg"); 43 Console.WriteLine("ダウンロードしました"); 44 } 45 catch (Exception ex) 46 { 47 Console.Write(ex.Message); 48 } 49 finally 50 { 51 // 切断 52 client.Disconnect(); 53 // 解放 54 client.Dispose(); 55 } 56 57 } 58 59 private void OnValidateCertificate(FtpClient control, FtpSslValidationEventArgs e) 60 { 61 // 証明書の内容を確認しない 62 e.Accept = true; 63 } 64 65 public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) 66 { 67 Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults); 68 69 base.OnRequestPermissionsResult(requestCode, permissions, grantResults); 70 } 71 } 72}
試したこと
・コマンドプロンプトや既存のFTPクライアントアプリからFTPサーバーへの接続確認済み
・コマンドプロンプトからFTPサーバーに接続した際の最初のディレクトリを確認,そしてパスの設定
補足情報(FW/ツールのバージョンなど)
Visual Studio2019
FTPサーバー(vsftpd)