首頁 >後端開發 >C++ >如何在 C# 中有效率地向 FTP 伺服器上傳和下載檔案?

如何在 C# 中有效率地向 FTP 伺服器上傳和下載檔案?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-11 09:22:40396瀏覽

How to Efficiently Upload and Download Files to/from an FTP Server in C#?

C#/.NET中FTP伺服器檔案的上傳與下載

問題1:串流檔案上傳

為避免在上傳前將大型檔案載入記憶體中,請使用FileStream和Stream.CopyTo直接傳輸檔案。修改後的程式碼如下:

<code class="language-csharp">using (Stream ftpStream = request.GetRequestStream())
using (Stream fileStream = File.OpenRead(@"/local/path/to/file.zip"))
{
    fileStream.CopyTo(ftpStream);
}</code>

問題2:下載後ZIP檔無效

透過啟用request.UsePassive = true,確認FTP伺服器是否支援pasv模式(被動模式資料傳輸)。此外,設定request.UseBinary = true以二進位模式傳輸檔案。修改後的程式碼如下:

<code class="language-csharp">FtpWebRequest request =
    (FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/file.zip");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.UsePassive = true;
request.UseBinary = true;

using (Stream ftpStream = request.GetResponse().GetResponseStream())
using (Stream fileStream = File.Create(@"/local/path/to/file.zip"))
{
    ftpStream.CopyTo(fileStream);
}</code>

透過上述修改,您可以成功地向FTP伺服器上傳和下載文件,確保下載後ZIP文件的完整性。

以上是如何在 C# 中有效率地向 FTP 伺服器上傳和下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn