如何在java中创建目录?

nqwrtyyt  于 2021-07-06  发布在  Java
关注(0)|答案(17)|浏览(528)

如何创建目录/文件夹?
一旦我测试过 System.getProperty("user.home"); 当且仅当新文件夹不存在时,我必须创建一个目录(目录名“new folder”)。

djmepvbi

djmepvbi1#

对于java 7及更高版本:

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

从createdirectories javadocs创建之前,似乎没有必要检查dir或文件的存在:
通过首先创建所有不存在的父目录来创建目录。与createdirectory方法不同,如果由于目录已经存在而无法创建该目录,则不会引发异常。attrs参数是在创建不存在的目录时以原子方式设置的可选文件属性。每个文件属性都由其名称标识。如果数组中包含多个同名属性,则会忽略除最后一个之外的所有属性。
如果此方法失败,那么它可能会在创建一些(但不是全部)父目录后执行此操作。

ippsafx7

ippsafx72#

为了在java中创建目录/文件夹,我们有两种方法
这里makedirectory方法创建一个不存在的目录。

File dir = new File("path name");
boolean isCreated = dir.mkdir();

File dir = new File("path name");
boolean isCreated = dir.mkdirs();

这里makedirectories方法将创建文件对象所表示的路径中缺少的所有目录。
例如,请参阅下面的链接(解释得很好)。希望有帮助!!https://www.flowerbrackets.com/create-directory-java-program/

vkc1a9a2

vkc1a9a23#

创建单个目录。

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

创建一个名为“directory2”的目录及其所有子目录“sub2”和“sub-sub2”。

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

资料来源:这个完美的教程,你还可以找到一个使用的例子。

7z5jn7bk

7z5jn7bk4#

下面的方法应该做您想做的事情,只是确保您正在检查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();
    }
}
xtupzzrd

xtupzzrd5#

7年后,我将更新它,以更好的方法,这是波佐建议。

File theDir = new File("/path/directory");
if (!theDir.exists()){
    theDir.mkdirs();
}
6tqwzwtp

6tqwzwtp6#

你可以试试fileutils#forcemkdir

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

这个图书馆有许多有用的功能。

70gysomp

70gysomp7#

如果要确保其已创建,请执行以下操作:

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();
}

因为 mkDir() 返回一个布尔值,如果您不使用该变量,findbugs将为此哭泣。也不太好。。。 mkDir() 仅当 mkDir() 创造它。如果dir存在,则返回false,因此要验证您创建的dir,只需调用 exists() 如果 mkDir() 返回false。 assertThat() 将检查结果,如果 exists() 返回false。ofc您可以使用其他东西来处理未创建的目录。

kmynzznz

kmynzznz8#

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

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

gpfsuwkq

gpfsuwkq9#

此函数允许您在用户主目录上创建目录。

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");
    }
}
crcmnpdw

crcmnpdw10#

只是想告诉所有打电话的人 File.mkdir() 或者 File.mkdirs() 要小心 File 对象是目录而不是文件。例如,如果你打电话 mkdirs() 为了这条路 /dir1/dir2/file.txt ,它将创建一个名为 file.txt 这可能不是你想要的。如果要创建新文件,并且还希望自动创建父文件夹,可以执行以下操作:

File file = new File(filePath);
            if (file.getParentFile() != null) {
                file.getParentFile().mkdirs();
            }
yruzcnhs

yruzcnhs11#

mkdir与mkdirs

如果要创建单个目录,请使用 mkdir ```
new File("/path/directory").mkdir();

如果要创建文件夹结构的层次结构,请使用 `mkdirs` ```
new File("/path/directory").mkdirs();
kxxlusnw

kxxlusnw12#

这种工作方式为我做一个或多个目录或它们:需要导入java.io.file;
/输入下面的代码添加一个目录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");  }
nafvub8i

nafvub8i13#

使用Java7,您可以 Files.createDirectories() .
例如:

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

ergxz8rk14#

尽管这个问题已经得到了回答。我想放一些额外的东西,例如,如果有一个文件存在的目录名,你试图创建比它应该提示一个错误。为未来的游客。

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");
        }
    }
}
qyuhtwio

qyuhtwio15#

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();
       }

    }
}

相关问题