2011-07-27 96 views
1

我想将文件保存到用户从一个目录中选择的另一个目录。我知道JFileChooser可以用来选择一个文件。但是不使用任何输出流,有什么方法可以将文件从一个位置移动到另一个位置?使用JFileChooser保存文件

回答

2

只有当它们位于相同的本地磁盘文件系统时,您才可以使用File#renameTo()

File sourceFile = createItSomehow(); 
File targetFile = chooser.getSelectedFile(); 

boolean renamed = sourceFile.renameTo(targetFile); 

if (!renamed) { 
    // Well, perhaps they are not on the same disk? 
} 

对于所有其他情况,只需流式传输,您真的会更好。另请参见链接的javadoc:

这种方法的行为的许多方面是天生的平台依赖性:重命名操作可能无法从一个文件系统的文件移动到另一个,它可能不是原子,并如果具有目标抽象路径名的文件已经存在,它可能不会成功。应始终检查返回值以确保重命名操作成功。