java.io.IOException:无法删除原始文件

时间:2014-08-12 07:06:17

标签: java

我试图使用移动文件方法移动文件。但是出现此错误 " java.io.IOException: Failed to delete original file"

这是我的代码。

这是用于文件移动而没有错误

public void moveWithoutError(String fileName){

     DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = new Date();
        String ts = dateFormat.format(date);

        File source = new File("D:/Inbound/");    
        File dest = new File("D:/Archive/"); 

        for (File file : source.listFiles()) {

            String x = (source + "/" + file.getName());
           String y = (dest + "/" + addTimestamp(file.getName(), ts));

           if(file.getName().equals(fileName)){
               File sourceFile = new File(x);
               File destnFile = new File(y);
               try{
                   FileUtils.moveFile(sourceFile, destnFile);
                   System.out.println("Moved file:"+y);
               }catch(Exception e){
                   System.out.println("Unable to move file:"+y);
                   System.out.println(e);
                                        e.printStackTrace();

               }
               break;
           }
       }
}

编写此代码是为了移动包含错误的文件

public void moveWithError(String fileName){

     DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = new Date();
        String ts = dateFormat.format(date);

        File source = new File("D:/Inbound\\"); 
        File dest = new File("D:\\Error\\"); /

        for (File file : source.listFiles()) {

            String x = (source + "/" + file.getName());
            String y = (dest + "/" + addTimestamp(file.getName(), ts));

            if(file.getName().equals(fileName)){
                   File f1 = new File(x); 
                    if(f1.renameTo(new File(y))){
                       System.out.println(" moved: " + y);
                    } else {
                      System.out.println("unable to move: " + y);
                    }
                    break;
               }


        }

}

此代码用于将时间戳添加到已移动的文件

public static String addTimestamp(String name, String ts) {
    int lastIndexOf = name.lastIndexOf('.');
    return (lastIndexOf == -1 ? 
            name + "_" + ts 
            : 
            name.substring(0, lastIndexOf) + "-" + ts + 
            name.substring(lastIndexOf))
             .replaceAll("[\\/:\\*\\?\"<>| ]", "");
}

}

执行此代码异常时 abd例外是 &#34; java.io.IOException:无法删除原始文件&#39; D:\ Inbound \ Testdata.xlsx&#39;复制到&#39; D:\ Archive \ Testdata-20140812121814.xlsx&#39;&#34;

注意 - 此文件既不会打开也不会被其他进程访问 请帮忙:(

异常

java.io.IOException: Failed to delete original file 'D:\Inbound\Testdata.xlsx' after copy to 'D:\Archive\Testdata-20140812130655.xlsx' 
at org.apache.commons.io.FileUtils.moveFile(FileUtils.java:2664) 
at CRP.MoveFile.moveWithoutError (MoveFile.java:77) 
at CRP.CRPDAO.callMoveFile (CRPDAO.java:562) 
at CRP.CRP_FileDependency.main (CRP_FileDependency.java:163)

0 个答案:

没有答案