目标文件目录结构:
------home
-----------backupdata
----------------hycompletebackup
----------------completebackup上面文件目录,多不存在的代码:
public static void hycompletebackup(){
  File hy = new File("/home/backupdata/hycompletebackup");
  if(!hy.exists() || hy.isFile()){
    if(hy.mkdirs()){
       System.out.println("success1")
    }
  }
}public static void  completebackup(){
  File cb = new File("/home/backupdata/completebackup");
  if(!cb.exists() || cb.isFile()){
    if(cb.mkdirs()){
       System.out.println("success2")
    }
  }
}public static void execute{//被定时器调用
  hycompletebackup();
  completebackup();
}问题:
   输出内容:
     success1
     success2  windows正常创建目录,但linux下
   /home/backupdata/hycompletebackup 目录成功创建
   /home/backupdata/completebackup 目录未创建
还请高手指点迷津!谢谢!

解决方案 »

  1.   

    下面的程序可以创建文件,如果文件的父目录不存在,则会自动创建父目录
    这个在Mac上没问题,Linux下应该也没关系,你再试试看看可不可以。
    import java.io.File;
    import java.io.IOException;public class Test {
        public static void main(String[] args) throws IOException {
            File file = new File("a/b/c/f.txt");
            System.out.println(file.exists());
            file = createFile(file.getAbsolutePath());
            System.out.println(file.exists());
            
            file = new File("a/b/c/d/e/f/f.txt");
            System.out.println(file.exists());
            file = createFile(file.getAbsolutePath());
            System.out.println(file.exists());
        }    public static File createFile(String fileName) throws IOException {
            File f = new File(fileName);        if (!f.exists()) {
                createDirs(f.getParentFile()); // 创建父目录
                f.createNewFile(); // 创建当前文件
            }        return f;
        }    public static void createDirs(File dir) throws IOException {
            if (dir == null || dir.exists()) { return; }
            createDirs(dir.getParentFile());
            dir.mkdir();
        }
    }
      

  2.   


    import java.io.File;
    import java.io.IOException;/**
     * 新建文件实例代码
     */
    public class CreateTxtFile {
    public static void main(String[] args) throws IOException {
    File file = new File("c:/newTxtFile.txt");
    //父目录如果不存在,那么先新建父目录
    if(!file.getParentFile().exists()){
    file.getParentFile().mkdirs();
    }
    //判断文件是否存在,不存在新建
    if(!file.exists()){
    file.createNewFile();
    }
    }
    }