【问题标题】:Can not create file in specific directory in Java (The system cannot find the path specified)无法在Java中的特定目录中创建文件(系统找不到指定的路径)
【发布时间】:2017-08-11 09:51:27
【问题描述】:

我有代码可以在我的计算机的D盘中创建文件,可以在这个文件中写入一些信息。这里是源代码

File file = new File("D:\\" + filename);
FileWriter writer = new FileWriter(file, true); 
writer.write(builder.toString());
writer.close();
System.out.println("done!");
statusText.setText("Information successfully saved!");
statusText.setForeground(Color.BLACK);

此代码工作正常,但是当我尝试像这样更改文件目录时出现异常

File file = new File("D:\\testFolder\\" + filename);

这里有一个例外

IOException: D:\testFolder\2017-08-11.csv (The system cannot find the path specified)

我做错了什么或如何解决我的问题?

【问题讨论】:

标签: java file java-io


【解决方案1】:

如果该文件夹不存在,则不能这样做... 你只会得到一个 java.io.FileNotFoundException

首先创建文件夹

File dir = new File("C:\\" + "__folder");
dir.mkdir(); 

dir.mkdirs(); 

取决于父/子文件夹的深度

【讨论】:

  • 谢谢,但我知道如何检查文件是否存在。但我会这样检查。如果目录存在(例如 D:testfolder)在这个目录中创建一些文件,否则创建新文件夹然后创建新文件@ΦXocę 웃 Пepeúpa ツ
【解决方案2】:

先尝试创建目录:

            String filename = "myfile";
            File file= null;

//          Check if directory exists
            File directory = new File("D:\\testFolder\\");
            if (directory.exists() && directory.isDirectory()) {
                //create your file
                file =  new File(directory +"\\"+ filename); 
            } else {
                // Create directory
                directory = new File("C:\\testFolder\\");

                if(directory.mkdir()) {
                    System.out.println("Directory Created");
                    file =  new File(directory +"\\"+ filename); 

                } else {
                    System.out.println("Directory is not created");
                }

                // Create file
            }

            FileWriter writer = null;
            try {
                writer = new FileWriter(file, true);
                writer.write(builder.toString());
                writer.close();
                System.out.println("done!");
                statusText.setText("Information successfully saved!");
                statusText.setForeground(Color.BLACK);
            } catch (IOException e) {
                e.printStackTrace();
            }

【讨论】:

  • 感谢您的关注。如果存在,我如何在此文件目录中创建一些文件? @mohit sharma
  • @Beka 立即查看,
  • 我试过了,但我的测试文件夹是空的@mohit sharma
  • @让我在这里运行它
  • 这是正确的代码 file = new File(directory +"\\"+ filename);那是错误@mohit sharma
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
相关资源
最近更新 更多