Как я могу создать папку в C: \, используя пути (не файл)? - PullRequest
0 голосов
/ 19 сентября 2018
Path myFile = Paths.get("c:").resolve("folderOne").resolve("filename.txt");

Вывод: создается папка One в папке, в которой запускается программа, но не в папке c: \, как ожидалось.

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Исправление

Используйте косую черту или обратную косую черту после имени диска:

    final Path path = Paths.get("c:/").resolve("folderOne").resolve("filename.txt");
    Files.createDirectories(path.getParent());

Обратите внимание, что косая черта (c:/) отлично работает в Windows.Также работает обратная косая черта: Paths.get("c:\\").

Также обратите внимание, что Paths.get() и Path.resolve() делают , а не сами создают каталоги.Вы можете использовать Files.createDirectories(), чтобы сделать работу.


Анализ всего пути с помощью Paths.get()

Если путь исправлен, вы можете проанализировать его непосредственно с помощью Paths.get() - не нужно вызывать .resolve():

    final Path path = Paths.get("c:/folderOne/filename.txt");

Опять же, в Windows работают как слеш, так и обратный слеш.


Относительные к диску пути

C:, без (обратных) слешей создает путь DRIVE_RELATIVE- означает, что путь начинается с текущей папки на данном диске.Цитата из https://docs.microsoft.com/en-us/dotnet/standard/io/file-path-formats

C:Projects\apilibrary\apilibrary.sln Относительный путь из текущей директории диска C:.

Вы можете увидетьэто путем преобразования в абсолютный путь:

System.out.println(
    Paths.get("c:").resolve("folderOne").resolve("filename.txt")
        .toAbsolutePath()
);

Ссылки:

0 голосов
/ 19 сентября 2018

Вам нужно будет импортировать в свой класс следующее:

import java.nio.file.Path;
import java.nio.file.Paths;

, затем вы можете использовать:

Path path = Paths.get("D:\\directoryName"); Files.createDirectories(path);

Вам также необходимо окружить свой код блоком try-catchИЛИ вы можете добавить IOException, как это:

public static void main(String args[]) throws IOException
{
..
}
0 голосов
/ 19 сентября 2018

Согласно Java Tutorial , это будет способ создания каталога в вашем случае.

Path path = Paths.get("C:\\folderOne");
Files.createDirectories(path);
...