# 用 Java 创建目录

原文：http://zetcode.com/java/createdirectory/

在 Java 创建目录教程中，我们展示了如何在 Java 中创建目录。 我们还将展示如何在 POSIX 系统上设置目录权限。

计算机目录是一种组织文件系统结构，其中包含文件和其他可选目录。

`java.nio.file.Files`类包含对文件，目录或其他类型的文件进行操作的静态方法。

## 使用`Files.createDirectory`创建目录

`Files.createDirectory()`创建一个新目录。 如果文件已经存在，则抛出`FileAlreadyExistsException`。

`JavaCreateDirectory.java`

```java
package com.zetcode;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class JavaCreateDirectory {

    public static void main(String[] args) throws IOException {

        String fileName = "/home/janbodnar/tmp/newdir";

        Path path = Paths.get(fileName);

        if (!Files.exists(path)) {

            Files.createDirectory(path);
            System.out.println("Directory created");
        } else {

            System.out.println("Directory already exists");
        }
    }
}

```

该示例使用`Files.createDirectory()`创建一个新目录。

```java
String fileName = "/home/janbodnar/tmp/newdir";

Path path = Paths.get(fileName);

```

从文件名创建一个`Path`。 `Path`是用于在文件系统中定位文件的 Java 对象。

```java
if (!Files.exists(path)) {

```

我们首先使用`Files.exists()`检查目录是否不存在。

```java
Files.createDirectory(path);

```

使用`Files.createDirectory()`创建目录。 该方法将路径对象作为参数。

## 使用`Files.createDirectories`创建目录

`Files.createDirectories`创建一个新目录； 如果父目录不存在，那么也会创建它们。 如果目录已经存在，则该方法不会引发异常。

`JavaCreateDirectories.java`

```java
package com.zetcode;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class JavaCreateDirectories {

    public static void main(String[] args) throws IOException {

        String fileName = "/home/janbodnar/docs/memos";
        Path path = Paths.get(fileName);

        Files.createDirectories(path);
    }
}

```

该示例使用`Files.createDirectories()`创建一个新目录。

## Java 创建具有权限的目录

使用`PosixFilePermissions`，我们可以创建一个新目录并设置其权限。 请注意，此类不能用于 Windows 系统。

`JavaCreateFileEx3.java`

```java
package com.zetcode;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.FileAttribute;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;

public class JavaCreateDirectoryWithPermissions {

    public static void main(String[] args) throws IOException {

        String fileName = "/home/janbodnar/tmp/newdir";

        Path mypath = Paths.get(fileName);

        if (!Files.exists(mypath)) {

            Set<PosixFilePermission> permissions = PosixFilePermissions.fromString("rwxr--r--");
            FileAttribute<Set<PosixFilePermission>> fileAttributes = PosixFilePermissions.asFileAttribute(permissions);

            Files.createDirectory(mypath, fileAttributes);
            System.out.println("Directory created");

        } else {
            System.out.println("Directory already exists");
        }
    }
}

```

该示例使用指定的权限创建一个新目录。

在本教程中，我们展示了如何用 Java 创建目录。 您可能也对相关教程感兴趣： [Java 创建文件](/java/createfile/)，[用 Java 复制文件](/java/copyfile/)， [Java 文件大小](/java/filesize/)，[读取 Java 中的文本文件](/articles/javareadtext/)， [Apache `FileUtils`教程](/java/fileutils/)， [Java Swing 教程](/tutorials/javaswingtutorial/)， [Java 教程](/lang/java/)，[用 Java 显示图像](/java/displayimage/)。