Java mkdir()未创建新目录
我正在使用Eclipse和jdk1.7。我正在使用文件处理制作一个基本程序,其中将生成目录中的输出目录。但是当我运行程序时,输出显示为false,并且没有创建目录。我认为输出是错误的,因为存在同名目录,但这不是原因。所以我需要帮助。这是我的密码:Java mkdir()未创建新目录,java,file-handling,Java,File Handling,我正在使用Eclipse和jdk1.7。我正在使用文件处理制作一个基本程序,其中将生成目录中的输出目录。但是当我运行程序时,输出显示为false,并且没有创建目录。我认为输出是错误的,因为存在同名目录,但这不是原因。所以我需要帮助。这是我的密码: import java.io.File; public class P { public static void main(String[] args) { File f1 = new File ("abc");
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()
的每个程序都有相同的问题。如果要创建多个目录,必须使用s。由于有些地方是允许的,所以可能还值得检查一下您是否可以前往该地点。这两个文件都在File类中itsobj.mkdirs()
看看这个:
File f = new File("non_existing_dir/someDir");
System.out.println(f.mkdir());
System.out.println(f.mkdirs());
第一次打印不会创建目录并返回
false
,但第二次打印会创建目录并返回true
mkdir需要的是抽象路径,而不是相对路径。尝试使用
File f2 = new File (f1, "C:\\");
。。。比如说
来自Java文档:
公共布尔值mkdir()
创建以此抽象路径名命名的目录
返回:
当且仅当目录已创建时为true;否则就错了
抛出:
SecurityException—如果存在安全管理器,且其SecurityManager.checkWrite(java.lang.String)方法不允许创建命名目录
看起来你们需要在你们的路径上工作一点,因为看起来文件不会推断出“abc”
另外,请确保您对尝试创建目录的路径具有权限。如果你不这样做,它就会失败。我已经有一段时间没有玩Java了,所以不确定是否需要在整个路径中执行mkdir调用(即/here/,/here/now here/,/here/now here/final)。我认为它可能是递归的,但这值得验证
实际上,从其他答案来看,mkdir是递归的,mkdir不是。我会使用mkdir,特别是如果从一开始就不知道输入,否则最终会用mkdir编写一个函数,它会做完全相同的事情 在您的例子中,您可以在
文件
类中使用makedirectories方法
File dir = new File("path name");
boolean isCreated = dir.mkdirs();
这里makedirectories方法将创建文件对象表示的路径中缺少的所有目录
来源和参考如下(详细解释)
调用唯一的
文件.mkdirs()
通常不起作用。
在评估中调用它,例如-
if(file.mkdirs()){ //do something}
boolean result = file.mkdirs();
或者,
在转让中,如—
if(file.mkdirs()){ //do something}
boolean result = file.mkdirs();
确保目录名中没有点。例如:“ab.c”应改为“abc”。是否存在“abc”并且是目录?您是否在程序的工作目录中查找新目录?(打印新文件(“”.getAbsolutePath()以查找WD)对于诊断,请打印。也许它试图在您没有写访问权限的位置创建目录?Java7引入了使用异常而不是布尔返回值的Files类。这有助于获取失败内容的文本描述,以便将来调试。是否在任何地方记录了这一点?如果是这样,我就找不到了。