mkdir()没有创建新目录
我正在使用Eclipse和jdk1.7。 我正在使用文件处理制作一个基本程序,其中将在目录中创建一个输出目录。 但是当我运行程序时,输出显示为false并且未创建目录。 我认为输出是错误的,因为存在具有相同名称的目录,但这不是原因。 所以我需要帮助。 这是我的代码:
import java.io.File; public class P { public static void main(String[] args) { File f1 = new File ("abc"); File f2 = new File (f1,"abc"); System.out.println(f2.mkdir()); } }
它的输出为false,但尚未创建任何目录。 我该如何解决这个问题? 这不仅仅是在这个程序中 – 我调用方法mkdir()
每个程序都有同样的问题。
如果要创建多个目录,则必须将mkdirs()与s一起使用。 某些地方获得许可也可能值得检查您是否可以写()到该位置。 这两个都在File类上
它的obj.mkdirs()
看看这个:
File f = new File("non_existing_dir/someDir"); System.out.println(f.mkdir()); System.out.println(f.mkdirs());
第一个打印不会创建一个目录并返回false
但第二个打印并返回true
创建目录示例
看起来你需要在你的路径上工作一点,因为它看起来不像File会推断“abc”。
此外,请确保您对尝试创建目录的路径具有权限。 如果不这样做,它将失败。 我玩了Java已经有一段时间了,所以不确定你是否需要在整个路径上做mkdir调用(即/ here /,/ here / now-here /,/ here / now-在这里/最后)或不。 认为它可能是递归的,但值得validation。
实际上,从查看其他答案看起来mkdirs将是递归的,mkdir不是。 我会选择mkdirs,特别是如果从一开始就不知道输入,否则你最终会用mkdir编写一个完全相同的函数。
mkdir需要抽象路径,而不是相对路径。 试着用……
File f2 = new File (f1, "C:\\");
… 例如。
来自Java DOC:
public boolean mkdir()
创建此抽象路径名指定的目录。
返回:
当且仅当目录已创建时才为true; 否则是假的
抛出:
SecurityException – 如果存在安全管理器且其SecurityManager.checkWrite(java.lang.String)方法不允许创建指定目录
在您的情况下,您可以在File
类中使用makedirectories方法。
File dir = new File("path name"); boolean isCreated = dir.mkdirs();
这里makedirectories方法将创建文件对象所代表的路径中缺少的所有目录。
来源和参考如下(详细解释)。
http://www.flowerbrackets.com/create-directory-java-program/
https://docs.oracle.com/javase/6/docs/api/java/io/File.html#canWrite%28%29