-1

我已经编写了这段代码来从 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();
4

5 回答 5

4

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

例如:

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

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

这是你的意思吗?

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

于 2012-11-02T12:16:55.940 回答
0

为此,您必须使用FtpWebRequest 。跟随链接。“示例”部分中有许多有用的示例。

于 2012-11-02T12:35:44.180 回答
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();
于 2012-11-02T12:18:42.317 回答
0

我认为,您遇到的问题是由于您现在写的“/”太多而导致您给出的路径不正确:

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

结果是“ftp://localhost/images//aaaasa.txt”

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

于 2012-11-02T12:19:05.187 回答
0

摆脱双斜线。此外,File 类适用于本地文件系统,这似乎是您尝试将数据写入的内容。为什么你在那个路径中有 ftp://?

于 2012-11-02T12:19:54.427 回答