java中创建目录,如何在Java中创建目录?

回答(17)

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

大约7年后,我将更新它以更好的方法,这是Bozho建议的 .

new File("/path/directory").mkdirs();

推荐使用:

File theDir = new File("new folder");

// if the directory does not exist, create it

if (!theDir.exists()) {

System.out.println("creating directory: " + theDir.getName());

boolean result = false;

try{

theDir.mkdir();

result = true;

}

catch(SecurityException se){

//handle it

}

if(result) {

System.out.println("DIR created");

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

new File("/path/directory").mkdirs();

这里“directory”是您要创建/存在的目录的名称 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

例如:

Files.createDirectories(Paths.get("/path/to/directory"));

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

FileUtils.forceMkdir("/path/directory");

这个library有很多有用的功能 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

mkdir vs mkdirs

如果要创建单个目录,请使用 mkdir

new File("/path/directory").mkdir();

如果要创建文件夹结构的层次结构,请使用 mkdirs

new File("/path/directory").mkdirs();

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

创建一个目录 .

new File("C:\\Directory1").mkdir();

一起创建名为“Directory2及其所有子目录”Sub2“和”Sub-Sub2“的目录 .

new File("C:\\Directory2\\Sub2\\Sub-Sub2").mkdirs()

来源:这个完美的tutorial,你也找到了一个使用的例子 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

对于java 7及更高版本:

Path path = Paths.get("/your/path/string");

Files.createDirectories(path);

首先通过创建所有不存在的父目录来创建目录 . 与createDirectory方法不同,如果由于目录已存在而无法创建目录,则不会引发异常 . attrs参数是可选的文件属性,用于在创建不存在的目录时以原子方式设置 . 每个文件属性都由其名称标识 . 如果数组中包含多个同名属性,则忽略除最后一次出现的所有属性 . 如果此方法失败,则可以在创建一些(但不是全部)父目录之后执行此操作 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

以下方法应该做你想要的,只要确保你检查mkdir() / mkdirs()的返回值

private void createUserDir(final String dirName) throws IOException {

final File homeDir = new File(System.getProperty("user.home"));

final File dir = new File(homeDir, dirName);

if (!dir.exists() && !dir.mkdirs()) {

throw new IOException("Unable to create " + dir.getAbsolutePath();

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

虽然这个问题已得到解答 . 我想添加一些额外的东西,即如果存在您尝试创建的目录名称的文件,则应该提示错误 . 对于未来的访客 .

public static void makeDir()

{

File directory = new File(" dirname ");

if (directory.exists() && directory.isFile())

{

System.out.println("The dir with name could not be" +

" created as it is a normal file");

}

else

{

try

{

if (!directory.exists())

{

directory.mkdir();

}

String username = System.getProperty("user.name");

String filename = " path/" + username + ".txt"; //extension if you need one

}

catch (IOException e)

{

System.out.println("prompt for error");

}

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

干净整洁:

import java.io.File;

public class RevCreateDirectory {

public void revCreateDirectory() {

//To create single directory/folder

File file = new File("D:\\Directory1");

if (!file.exists()) {

if (file.mkdir()) {

System.out.println("Directory is created!");

} else {

System.out.println("Failed to create directory!");

}

}

//To create multiple directories/folders

File files = new File("D:\\Directory2\\Sub2\\Sub-Sub2");

if (!files.exists()) {

if (files.mkdirs()) {

System.out.println("Multiple directories are created!");

} else {

System.out.println("Failed to create multiple directories!");

}

}

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

那么在java中创建Directory /文件夹我们有两种方法

这里makedirectory方法创建单个目录,如果它不存在 .

File dir = new File("path name");

boolean isCreated = dir.mkdir();

File dir = new File("path name");

boolean isCreated = dir.mkdirs();

这里makedirectories方法将创建文件对象表示的路径中缺少的所有目录 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

只是想指出每个调用 File.mkdir() 或 File.mkdirs() 的人都要小心, File 对象是一个目录,而不是一个文件 . 例如,如果您为路径 /dir1/dir2/file.txt 调用 mkdirs() ,它将创建名为 file.txt 的 folder ,这可能不是您想要的 . 如果您要创建新文件并且还想自动创建父文件夹,则可以执行以下操作:

File file = new File(filePath);

if (file.getParentFile() != null) {

file.getParentFile().mkdirs();

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

这对我来说工作方式可以做一个或多个目录或者更多:需要导入java.io.File;

/ *输入下面的代码添加一个diectory dir1或检查是否存在dir1,如果没有,所以创建它和dir2和dir3 * /相同

File filed = new File("C:\\dir1");

if(!filed.exists()){ if(filed.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }

File filel = new File("C:\\dir1\\dir2");

if(!filel.exists()){ if(filel.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }

File filet = new File("C:\\dir1\\dir2\\dir3");

if(!filet.exists()){ if(filet.mkdir()){ System.out.println("directory is created"); }} else{ System.out.println("directory exist"); }

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

此功能允许您在用户主目录上创建目录 .

private static void createDirectory(final String directoryName) {

final File homeDirectory = new File(System.getProperty("user.home"));

final File newDirectory = new File(homeDirectory, directoryName);

if(!newDirectory.exists()) {

boolean result = newDirectory.mkdir();

if(result) {

System.out.println("The directory is created !");

}

} else {

System.out.println("The directory already exist");

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

如果你想确定它的创建然后这个:

final String path = "target/logs/";

final File logsDir = new File(path);

final boolean logsDirCreated = logsDir.mkdir();

if (!logsDirCreated) {

final boolean logsDirExists = logsDir.exists();

assertThat(logsDirExists).isTrue();

}

beacuse mkDir() 返回一个布尔值,如果你不使用变量,findbugs会为它哭 . 还不错......

mkDir() 仅在 mkDir() 创建它时才返回true . 如果dir存在,则返回false,因此要验证您创建的目录,只有在 mkDir() 返回false时才调用 exists() .

如果 exists() 返回false, assertThat() 将检查结果并失败 . ofc你可以使用其他东西来处理未创建的目录 .

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

public class Test1 {

public static void main(String[] args)

{

String path = System.getProperty("user.home");

File dir=new File(path+"/new folder");

if(dir.exists()){

System.out.println("A folder with name 'new folder' is already exist in the path "+path);

}else{

dir.mkdir();

}

}

}

e15298c6a3b4591803e154ab0c3b3e2e.png

2 years ago

您还可以参考makdir()函数在您想要的文件夹中创建新目录 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值