juechen333 2022-01-29 23:31 采纳率: 75%
浏览 60
已结题

在磁盘创建文件夹和文件时报错:Exception in thread “main“ java.io.IOException: 系统找不到指定的路径。请问我就想在D盘创建一个文件夹和文本文件怎么做

在磁盘D创建两个文件时,具体代码如下,程序是对着书上敲的,为啥会报错呢?
有无同行解答


import java.io.File;
import java.io.IOException;

public class Page166 {
    public static void main(String[] args) throws IOException {
        //磁盘下创建文件
        File file = new File("D:\\hello\\demo.txt");
        //如果存在这个文件就删除,否则就创建
        if (file.exists()) {
            file.delete();
        } else {
            System.out.println(file.createNewFile());
        }
        //在磁盘下创建一层目录,并且在目录下创建文件
        File fileDemo = new File("D:\\hello1\\demo.txt");
        //判断D:\hello1目录是否存在
        if (!(fileDemo.getParentFile().exists())) {
            fileDemo.getParentFile().mkdir();
        }
        //如果存在这个文件就删除,否则就创建
        if (fileDemo.exists()) {
            fileDemo.delete();
        } else {
            System.out.println(fileDemo.createNewFile());
        }
    }
}

运行结果:

img

Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at com.javajichu.Page166.main(Page166.java:14)

Process finished with exit code 1

我的java文件是放在D盘的: D:\untitled\src\com\包名中的,当我把要创建的文件位置放在这个位置时,程序没有报错,如下:

import java.io.File;
import java.io.IOException;

public class Page166 {
    public static void main(String[] args) throws IOException {
        //磁盘下创建文件
        File file = new File("D:\\untitled1\\src\\com\\demo.txt");     //为本文件路径
        //如果存在这个文件就删除,否则就创建
        if (file.exists()) {
            file.delete();
        } else {
            System.out.println(file.createNewFile());
        }
        //在磁盘下创建一层目录,并且在目录下创建文件
        File fileDemo = new File("D:\\untitled1\\src\\com\\demo1.txt");    //为本文件路径
        //判断D:\hello1目录是否存在
        if (!(fileDemo.getParentFile().exists())) {
            fileDemo.getParentFile().mkdir();
        }
        //如果存在这个文件就删除,否则就创建
        if (fileDemo.exists()) {
            fileDemo.delete();
        } else {
            System.out.println(fileDemo.createNewFile());
        }
    }
}

img

但这里我去除了hello和hello1文件夹,不然就会报错,是不能创建文件夹吗?
当我要完成上面的那种形式时,该怎么修改代码?

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-01-29 23:58
    关注

    File只能创建文件,创建目录要调用mkdir()方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 1月29日

悬赏问题

  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元