-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

URL 内の二重スラッシュは疑わしく見えます。

例えば:

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

与える

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

ということですか?

またFile.Create、ローカルファイルのみを対象としています。

于 2012-11-02T12:16:55.940 に答える
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 に答える
0

この目的にはFtpWebRequestを使用する必要があります。リンクに従ってください。「例」セクションには、多くの有用な例があります。

于 2012-11-02T12:35:44.180 に答える