首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

File种移动文件和文件夹

2012-10-24 
File类移动文件和文件夹对于文件夹和文件的移动,File类未提供直接的move函数。只提供了renameTo函数进行重

File类移动文件和文件夹

对于文件夹和文件的移动,File类未提供直接的move函数。只提供了renameTo函数进行重命名,delete函数删除文件及空文件夹。利用这两个函数我们可以进行文件和文件夹的移动。

?

moveFile移动源文件到目的文件夹。注意使用renameTo而不是读取文件所有内容,在目的地址新建文件的效率高很多。因为renameTo相当于修改了快捷方式,并没有增加磁盘io。只是修改磁盘一个区域索引地址而已。

?

moveDirectory移动源文件夹中所有内容(包括子文件夹)到目的文件夹

?

可以在函数中加更丰富的提示以及判断。文件不存在该怎么做,是否自动创建文件夹,是否删除源文件夹,文件或文件夹移动失败如何等等。


moveFile源码:

/** * 移动文件 * @param srcFileName 源文件完整路径* @param destDirName 目的目录完整路径* @return 文件移动成功返回true,否则返回false */  public boolean moveFile(String srcFileName, String destDirName) {File srcFile = new File(srcFileName);if(!srcFile.exists() || !srcFile.isFile())     return false;File destDir = new File(destDirName);if (!destDir.exists())destDir.mkdirs();return srcFile.renameTo(new File(destDirName + File.separator + srcFile.getName()));}

?

moveDirectory源码:?

/** * 移动目录 * @param srcDirName 源目录完整路径* @param destDirName 目的目录完整路径* @return 目录移动成功返回true,否则返回false */  public  boolean moveDirectory(String srcDirName, String destDirName) {File srcDir = new File(srcDirName);if(!srcDir.exists() || !srcDir.isDirectory())  return false;        File destDir = new File(destDirName);   if(!destDir.exists())   destDir.mkdirs();      /**    * 如果是文件则移动,否则递归移动文件夹。删除最终的空源文件夹    * 注意移动文件夹时保持文件夹的树状结构    */   File[] sourceFiles = srcDir.listFiles();   for (File sourceFile : sourceFiles) {   if (sourceFile.isFile())   moveFile(sourceFile.getAbsolutePath(), destDir.getAbsolutePath());   else if (sourceFile.isDirectory())   moveDirectory(sourceFile.getAbsolutePath(),    destDir.getAbsolutePath() + File.separator + sourceFile.getName());   else   ;   }   return srcDir.delete();}

?

参考:http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html

热点排行