ホームページ >バックエンド開発 >C++ >C#/.NET を使用して FTP サーバーにファイルをアップロードおよびダウンロードするにはどうすればよいですか?

C#/.NET を使用して FTP サーバーにファイルをアップロードおよびダウンロードするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-11 07:31:45610ブラウズ

How can I upload and download files to/from an FTP server using C#/.NET?

C#/.NET を使用した FTP サーバー ファイルのアップロードとダウンロード

この記事では、C#/.NET を使用して FTP サーバー ファイルを効率的にアップロードおよびダウンロードする方法について説明します。 WebClientFtpWebRequest の使用を含むいくつかの方法を提供し、アップロードとダウンロードの進行状況を追跡する方法を示します。

ファイルのアップロード

方法 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。