有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA木卫一。IOException:无法删除原始文件

我试图用move file方法移动文件。但是得到这个错误 “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例外是 “java.io.IOException:在复制到'D:\Archive\Testdata-201408121814.xlsx'后,未能删除原始文件'D:\Inbound\Testdata.xlsx'”

注意-此文件未打开,也未被其他进程访问 请帮助:(

例外情况

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) 个答案