从FTP服务器下载文件:不支持给定路径的格式

时间:2012-11-02 12:14:41

标签: c#

我已将此代码编写为从FTP服务器下载文件,但它显示错误消息,指出不支持给定路径的格式。

 WebClient web = new WebClient();
 byte[] filedata = web.DownloadData("ftp://localhost/images/" 
                                    + "/" + "aaaasa.txt");
 FileStream file = File.Create("ftp://localhost/images/"+"/"+"aaaasa.txt");
 file.Write(filedata, 0, filedata.Length);
 file.Close();

5 个答案:

答案 0 :(得分:4)

您网址中的双斜线看起来很可疑。

e.g:

"ftp://localhost/images/"+"/"+"aaaasa.txt"

给出

ftp://localhost/images//aaaasa.txt

是你的意思吗?

此外File.Create仅适用于本地文件。

答案 1 :(得分:0)

除了其他人所说的关于FTP路径中的双斜杠(“//”)之外,请注意本地文件不能包含协议:

File.Create("ftp://localhost/images/"+"/"+"aaaasa.txt")

这不起作用。请提供本地文件名,如以下示例所示:

FileStream file = File.Create(@"C:\Temp\aaaasa.txt");
file.Write(filedata, 0, filedata.Length);
file.Close();

答案 2 :(得分:0)

我认为,您遇到的问题是由于您提供的路径因“/”过多而导致错误 你现在写的是什么:

web.DownloadData("ftp://localhost/images/" + "/" + "aaaasa.txt")

导致“ftp://localhost/images//aaaasa.txt”

如果你要删除+“/”我认为你可能会没事。
这也适用于file.create方法。

答案 3 :(得分:0)

摆脱双斜线。此外,File类适用于本地文件系统,它出现的是您尝试将数据写入的文件系统。你为什么在那条路上有ftp://?

答案 4 :(得分:0)

为此必须使用FtpWebRequest。点击链接。 “示例”部分中有许多有用的示例。