使用 C# 将文件.txt FTP 到 FTP 站点
本文关键字:FTP 站点 txt 文件 使用 | 更新日期: 2023-09-27 18:36:05
我有一个TXT
文件,我必须将其FTP
到FTP site
。
找不到可以帮助我编写此代码的完整教程。有人可以指出我一个好的教程,或者一些代码开始吗?
这看起来不错。
正如我在评论中发布的那样,您可以看到此链接以获取如何将文件上传到FTP服务器的示例。
链接中的代码:
using System;
using System.IO;
using System.Net;
using System.Text;
namespace Examples.System.Net
{
public class WebRequestGetExample
{
public static void Main ()
{
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
request.Method = WebRequestMethods.Ftp.UploadFile;
// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
// Copy the contents of the file to the request stream.
StreamReader sourceStream = new StreamReader("testfile.txt");
byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
response.Close();
}
}
}
}
若要验证文件是否已正确上传,可以检查响应,它具有状态说明和状态代码属性。
或者,再次调用 FTP 服务器,在其中设置方法 request.Method = WebRequestMethods.Ftp.ListDirectory;
。这将返回 FTP 服务器上的文件列表。
当然,这不会验证文件是否正确上传,只会验证是否存在同名文件。
我希望这回答了你的问题。
您也可以尝试此代码,也适用于其他文件扩展名。
string ftpUrl = "ftp://server//foldername/fileName.ext";
string fileToUploaded = "c:/fileName.ext";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpUrl);
request.Proxy = new WebProxy(); //-----Proxy bypassing(The requested FTP command is not supported when using HTTP proxy)
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
using (var requestStream = request.GetRequestStream())
{
using (var input = File.OpenRead(fileToBeUploaded))
{
input.CopyTo(requestStream);
}
}
尝试流式传输数据,而不是将其全部单独加载到内存中。 此外using
声明有助于完美地处置资源。