C#/.NET を使用した FTP サーバー ファイルのアップロードとダウンロード
この記事では、C#/.NET を使用して FTP サーバー ファイルを効率的にアップロードおよびダウンロードする方法について説明します。 WebClient
と FtpWebRequest
の使用を含むいくつかの方法を提供し、アップロードとダウンロードの進行状況を追跡する方法を示します。
ファイルのアップロード
方法 1: WebClient を使用する (簡単な方法)
ファイルをアップロードする簡単な方法は次のとおりです:
<code class="language-csharp">WebClient client = new WebClient(); client.Credentials = new NetworkCredential("用户名", "密码"); client.UploadFile("ftp://ftp.example.com/远程路径/文件.zip", @"C:\本地路径\文件.zip");</code>
方法 2: FtpWebRequest を使用する (ストリーム コピー、より細かい制御)
この方法では、ストリーム レプリケーションを介してアップロード プロセスをより細かく制御できます。
<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/远程路径/文件.zip"); request.Credentials = new NetworkCredential("用户名", "密码"); request.Method = WebRequestMethods.Ftp.UploadFile; using (Stream fileStream = File.OpenRead(@"C:\本地路径\文件.zip")) using (Stream ftpStream = request.GetRequestStream()) { fileStream.CopyTo(ftpStream); }</code>
方法 3: FtpWebRequest を使用する (ブロックされたコピー、進行状況の追跡)
このメソッドは、ファイルのコンテンツをチャンクにコピーして、アップロードの進行状況を追跡します:
<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/远程路径/文件.zip"); request.Credentials = new NetworkCredential("用户名", "密码"); request.Method = WebRequestMethods.Ftp.UploadFile; using (Stream fileStream = File.OpenRead(@"C:\本地路径\文件.zip")) using (Stream ftpStream = request.GetRequestStream()) { byte[] buffer = new byte[10240]; int read; while ((read = fileStream.Read(buffer, 0, buffer.Length)) > 0) { ftpStream.Write(buffer, 0, read); Console.WriteLine("已上传 {0} 字节", fileStream.Position); } }</code>
ファイルのダウンロード
方法 1: WebClient を使用する (簡単な方法)
ファイルをダウンロードする簡単な方法は次のとおりです:
<code class="language-csharp">WebClient client = new WebClient(); client.Credentials = new NetworkCredential("用户名", "密码"); client.DownloadFile("ftp://ftp.example.com/远程路径/文件.zip", @"C:\本地路径\文件.zip");</code>
方法 2: FtpWebRequest を使用する (ストリーム コピー、より細かい制御)
この方法では、ストリーム レプリケーションを介してダウンロード プロセスをより細かく制御できます。
<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/远程路径/文件.zip"); request.Credentials = new NetworkCredential("用户名", "密码"); request.Method = WebRequestMethods.Ftp.DownloadFile; using (Stream ftpStream = request.GetResponse().GetResponseStream()) using (Stream fileStream = File.Create(@"C:\本地路径\文件.zip")) { ftpStream.CopyTo(fileStream); }</code>
方法 3: FtpWebRequest を使用する (ブロックされたコピー、進行状況の追跡)
このメソッドは、ファイルのコンテンツをチャンクにコピーして、ダウンロードの進行状況を追跡します:
<code class="language-csharp">FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/远程路径/文件.zip"); request.Credentials = new NetworkCredential("用户名", "密码"); request.Method = WebRequestMethods.Ftp.DownloadFile; using (Stream ftpStream = request.GetResponse().GetResponseStream()) using (Stream fileStream = File.Create(@"C:\本地路径\文件.zip")) { byte[] buffer = new byte[10240]; int read; while ((read = ftpStream.Read(buffer, 0, buffer.Length)) > 0) { fileStream.Write(buffer, 0, read); Console.WriteLine("已下载 {0} 字节", fileStream.Position); } }</code>
"用户名"
、"密码"
、"ftp://ftp.example.com/远程路径/文件.zip"
、@"C:本地路径文件.zip"
を実際の FTP サーバー情報とファイル パスに置き換えてください。
以上がC#/.NET を使用して FTP サーバーにファイルをアップロードおよびダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。