如果我尝试下载类似下面的文件,则会在此处下载
client.retrieveFile("/" + filename, fos); // working
但是,如果我尝试将FTP文件下载到特定的本地目录,如下所示,它不会被下载到那里。谁能告诉我为什么会这样?
client.retrieveFile("C:\MydownloadedFiles" + filename, fos); // not working
感谢。
答案 0 :(得分: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:”下创建一个下载目录
第二行创建要下载到的文件名,父目录等于第一行结果的绝对路径。
第三个下载到它。
您在记住使用“\\”时遇到问题
我建议使用这三行来解决这个问题并摆脱对斜杠类型的平台依赖决策。