Java:创建目录失败

时间:2012-07-24 20:45:44

标签: java file-io

我在测试中有以下代码

public class TestMe {
  private static final String BACKUP_DIR_PATH = "~/backup";

  @Test
  public static void createBackupDir() throws IOException {
    File path = new File(BACKUP_DIR_PATH + "/" + getFolderName()).getCanonicalFile();
    System.out.println(path.mkdirs());
  }

  // returns 2012-07-23
  private static String getFolderName() {
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date();
    return dateFormat.format(date).toString();
  }
}

当我运行此测试时,它返回false

backup2012-07-23文件夹都不存在

这里有什么不对?

3 个答案:

答案 0 :(得分:10)

可能是因为Java不知道~的含义。

~是shell扩展,而不是有效的路径名。

答案 1 :(得分:4)

试试这个:

 private static final File HOME_DIR = new File(System.getProperty("user.home"));
 private static final File BACKUP_DIR = new File(HOME_DIR, "backup");

从那里开始。一般来说,最好通过追加你正在做的字符串来避免构造路径。请改用File方法来构建路径。

请注意,检索用户的主目录属性需要得到任何已安装的安全管理员的批准,因此您的代码应准备好处理SecurityException

答案 2 :(得分:0)

您是否在Windows系统上运行它?如果是这样,请考虑使用File.separator而不是“/”,以便代码与平台无关。

还使用System.getProperty(“user.home”))而不是“〜”使其与平台无关。