2 回答

TA贡献1830条经验 获得超3个赞
首先,如果可能的话,我建议你使用java.nio.file类(例如Path),而不是基于文件的方法。您将使用文件系统创建 Path 对象。您可以使用默认文件系统,如果这里不需要灵活性:
final String folder = ...
final String filename = ...
final FileSystem fs = FileSystems.getDefault();
final Path myFile fs.getPath(folder, filename);
然后,您的问题可以通过一个非常方便的API轻松解决:
final Path destinationFolder = dest.getParent();
Files.createDirectories(myPath.getParent());
try (final OutputStream os = Files.newOutputStream(myFile)) {
...
}
如果目录已存在,Files.createDirectories() 方法不会失败,但可能会由于其他原因而失败。例如,如果文件“foo/bar”存在,Files.createDirectories(“foo/bar/folder”)很可能不会成功。;)
请仔细阅读 javadoc!
要检查,如果路径指向现有目录,只需用户:
Files.isDirectory(somePath);
如果需要,您可以在“文件”和“路径”之间进行转换。但是,您将丢失文件系统信息:
final Path path1 = file1.toPath();
final File file2 = path2.toFile();

TA贡献1900条经验 获得超5个赞
您可以使用 Files.createDirectories:
Files.createDirectories(Paths.get("C:\\javatest\\javanewfolder"));
另外,您可以使用 复制文件 )Files.copy
添加回答
举报