当前位置: 首页 > 面试题库 >

Java-mkdir()不写目录

陈茂
2023-03-14
问题内容

我正在尝试创建目录,但每次似乎都失败?我已经检查了它也不是权限问题,我具有写入该目录的完全权限。提前致谢。

这是代码:

private void writeTextFile(String v){
    try{

        String yearString = convertInteger(yearInt);
        String monthString = convertInteger(month);
        String fileName = refernce.getText();
        File fileDir = new File("C:\\Program Files\\Sure Important\\Report Cards\\" + yearString + "\\" + monthString);
        File filePath = new File(fileDir + "\\"+ fileName + ".txt");
        writeDir(fileDir);
        // Create file 
        FileWriter fstream = new FileWriter(filePath);
        try (BufferedWriter out = new BufferedWriter(fstream)) {
            out.write(v);
        }
    }catch (Exception e){//Catch exception if any
    System.err.println("Error: " + e.getMessage());
    }
}

private void writeDir(File f){
    try{
         if(f.mkdir()) { 
             System.out.println("Directory Created");
        } else {
        System.out.println("Directory is not created");
        }
    } catch(Exception e){
        e.printStackTrace();
    }
}

public static String convertInteger(int i) {
    return Integer.toString(i);
}

Calendar cal = new GregorianCalendar();
public int month = cal.get(Calendar.MONTH);
public int yearInt = cal.get(Calendar.YEAR);

这是输出:

Directory is not created
Error: C:\Program Files\Sure Important\Report Cards\2012\7\4532.txt (The system cannot find the path specified)

问题答案:

这可能是因为File.mkdir仅在父目录存在时才创建目录。尝试使用File.mkdirswhich创建所有必要的目录。

这是对我有用的代码。

private void writeDir(File f){
    try{
         if(f.mkdirs()) { 
             System.out.println("Directory Created");
        } else {
        System.out.println("Directory is not created");
        }
    } catch(Exception e){
            //  Demo purposes only.  Do NOT do this in real code.  EVER.
            //  It squashes exceptions ...
        e.printStackTrace();
    }
}

我所做的唯一更改是更改f.mkdir()f.mkdirs()并成功



 类似资料:
  • 问题内容: 我正在使用Eclipse和jdk1.7。我正在使用文件处理程序制作一个基本程序,其中将在目录内创建一个输出目录。但是,当我运行该程序时,输出显示为false并且未创建目录。我以为输出错误,因为存在同名目录,但这不是原因。所以我需要帮助。这是我的代码: 其输出为false,但尚未创建目录。我该如何解决这个问题?这不仅在此程序中-我在其中调用该方法的每个程序都存在相同的问题。 问题答案:

  • mkdir 命令,是 make directories 的缩写,用于创建新目录,此命令所有用户都可以使用。 mkdir 命令的基本格式为: [root@localhost ~]# mkdir [-mp] 目录名 -m 选项用于手动配置所创建目录的权限,而不再使用默认权限。 -p 选项递归创建所有目录,以创建 /home/test/demo 为例,在默认情况下,你需要一层一层的创建各个目录,而使用

  • 此任务用于创建目录。如果目录不存在,它会创建一个新目录。 如果目录已存在,则不会创建目录。 此任务使用以下属性。 1. Apache Ant Mkdir任务属性 属性 描述 必需 要创建的目录 是 2. Apache Ant Mkdir任务示例 参考以下示例代码: 上面的代码将在当前项目位置创建一个目录:yiibai-dir。 创建嵌套目录(子目录) 上面的代码将在yiibai-dir目录中创建一

  • 描述 (Description) 此函数使用MODE指定的模式生成名称和路径EXPR的目录,为了清楚起见,应将其作为八进制值提供。 语法 (Syntax) 以下是此函数的简单语法 - mkdir EXPR,MODE 返回值 (Return Value) 此函数在失败时返回0,在成功时返回1。 例子 (Example) 以下是显示其基本用法的示例代码 - #!/usr/bin/perl -w $d

  • 此命令用于在当前工作目录中创建目录。 语法 (Syntax) mkdir dirname 参数 (Parameters) dirname - 需要创建的新目录的名称。 返回值 (Return Value) 没有 例子 (Example) /* Main program */ mkdir Test 输出 (Output) 当我们运行上面的程序时,将在工作目录中创建名为Test的目录。

  • 嗨,我是hadoop新手,正在尝试在hdfs中创建名为twitter_data目录。我已经在softlayer上建立了我的vm,成功地安装并启动了hadoop。 为什么说没有这个文件和目录?我正在命令它做目录,它不应该只是创建一个吗?我猜这一定是许可问题,但我无法解决。请帮助我的hdfs专家。我一直在花太多的时间在看似简单的事情上。 提前道谢。