【问题标题】:Exception "System can't find the file specified" file.createNewFile()异常“系统找不到指定的文件”file.createNewFile()
【发布时间】:2014-12-07 17:01:35
【问题描述】:

当我尝试创建文件时,它给了我一个 IOException。

java.io.IOException: 系统找不到指定的路径 在 java.io.WinNTFileSystem.createFileExclusively(本机方法) 在 java.io.File.createNewFile(Unknown Source)

我有创建设置目录并检查它是否存在的代码。每次我运行它时,它都会显示“新用户”消息。 这是创建目录的代码:

f = new File(System.getProperty("user.home") + "AppData\\Local\\DataDude\\pass\\");

这是支票:

if (f.isDirectory()) {
    firstTime = false;
} else {
    firstTime = true;
    f.mkdirs();
}

这里是它创建文件的地方:

File f = new File(this.getPassLoc() + user.getText() + ".ser");
if (!f.exists()) {
    f.createNewFile();
} 

getPassLoc() 返回f

【问题讨论】:

    标签: java file file-io


    【解决方案1】:

    在我的系统上,System.getProperty("user.home") 和您的文件 f 得到以下值:

    C:\Users\Luke
    C:\Users\LukeAppData\Local\DataDude\pass
    

    您在AppData 之前错过了一个反斜杠,或者假设System.getProperty("user.home") 将以1 结尾,因此登录的用户名和AppData 已连接到一个目录名称中。我不相信这是你想要的。

    【讨论】:

      【解决方案2】:

      尝试从主驱动器根目录开始并从那里向上扩展,而不是使用 user.home。有错误说它也找不到你想要它保存文件的目录.. 如果您希望错误消失,您需要创建该目录结构,或者您需要让 java 程序创建目录结构。

      f = new File(System.getProperty("user.home") + "AppData\\Local\\DataDude\\pass\\").mkdirs();
      

      完成此操作后,请确保目录位于您想要的位置。

      【讨论】:

        【解决方案3】:

        可能是您没有足够的权限写入该文件夹。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-30
          • 2019-02-24
          • 1970-01-01
          • 1970-01-01
          • 2018-09-26
          • 1970-01-01
          相关资源
          最近更新 更多