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