0

以下のようなファイルをダウンロードしようとすると、ここにダウンロードされます

client.retrieveFile("/" + filename, fos);  // working

しかし、以下のように特定のローカル ディレクトリに FTP ファイルをダウンロードしようとすると、そこにダウンロードされません。なぜこれが起こっているのか誰にも教えてもらえますか?

client.retrieveFile("C:\MydownloadedFiles" + filename, fos); // not working

ありがとう。

4

1 に答える 1

1

「\」をエスケープしてください。
そのはず:

client.retrieveFile("C:\\MydownloadedFiles" + "\\" + filename, fos);

一般に、クロスプラットフォームをサポートするために、一定の File.separator を使用することをお勧めします。
私が念頭に置いている別のアイデア(テストしてください)は次のとおりです。

File downloadsDirectory = new File("c:","MyDownloadedFiles");
File retrievedFileOnLocalComp = new File(downloadsDirectory.getAbsolutePath(),filename);
client.retrieveFile(retrievedFileOnComp.getAbsolutePath(),fos);

説明
- 最初の行は、「c:」の親パスの下にダウンロード ディレクトリを
作成します。
3番目はそれにダウンロードします。「\\」の使用を覚えていないという問題がありました。
この問題を解決し、スラッシュ タイプに関するプラットフォーム依存の決定を取り除くために、これらの 3 行を使用することをお勧めします。

于 2012-11-18T06:05:15.847 に答える