文件夹和文件 通过 ftp C# 上传
本文关键字:上传 ftp 通过 文件 文件夹 | 更新日期: 2023-09-27 18:32:13
我正在尝试学习有关通过FTP连接上传到另一台主机的新知识。我知道如何上传单个文件。但是,如果我想上传包含其完整子文件夹和文件的完整文件夹怎么办?
这是我的一个文件上传
private void Form1_Load(object sender, EventArgs e)
{
Upload("Test.txt");
}
public void Upload(string fileToUpload)
{
try
{
FileInfo toUpload = new FileInfo(fileToUpload);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://127.0.0.1/" + toUpload.Name);
MessageBox.Show(WebRequestMethods.Ftp.ListDirectory);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("Uploader", "3635451");
Stream ftpStream = request.GetRequestStream();
FileStream file = File.OpenRead(fileToUpload);
int length = 1024;
byte[] buffer = new byte[length];
int bytesRead = 0;
do
{
bytesRead = file.Read(buffer, 0, length);
ftpStream.Write(buffer, 0, bytesRead);
}
while (bytesRead != 0);
file.Close();
ftpStream.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我谷歌了很多关于上传文件夹的信息,但我刚刚失败了提前谢谢你。
您可以使用 WinSCP 库。它是免费的,支持FTP和SFTP。我发现它易于使用,并且完美无缺。
PutFiles
方法将处理整个文件夹,包括子文件夹。它还具有SynchronizeDirectories
方法。
答案是你不能。
您可能对用于执行此类操作的库感兴趣,如果没有,您可以查看它们的源代码。
如果要上传文件夹,则必须在FTP上创建文件夹,然后逐个复制每个文件。
本地文件夹示例:
/Folder/File1.txt
/Folder/File2.txt
如果要上传文件夹"文件夹"。
- 在 FTP 中创建目录
- 打开 FTP 目录
- 复制"文件1.txt"
- 复制"文件2.txt"