質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

ダウンロード

リモートシステムからローカルシステムへとデータを受信する事、もしくはそのようなデータ転送を行う事をダウンロードと呼びます。

Q&A

1回答

11194閲覧

[C#]FluentFTPクラスを使用したFTPクライアントでファイルダウンロードができない

kyota1

総合スコア6

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

ダウンロード

リモートシステムからローカルシステムへとデータを受信する事、もしくはそのようなデータ転送を行う事をダウンロードと呼びます。

0グッド

0クリップ

投稿2020/11/10 09:52

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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

client.DownloadFile(@"C:\Users\2.jpg", "/Pictures/2.jpg");

ファイルパスの記述がおかしいのでは

投稿2020/11/10 10:16

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kyota1

2020/11/10 10:19

ご回答ありがとうございます!すみません、具体的にどのように記述したらいいんでしょうか?
y_waiwai

2020/11/10 10:23

client.DownloadFile("C:\Users\2.jpg", "/Pictures/2.jpg"); ではどうでしょう
kyota1

2020/11/10 11:10

できませんでした…
kyota1

2020/11/10 11:11

他に何か解決策はありますかね?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問