Как создать средние папки по уже существующему пути? - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть такой путь:

/foo/bar/... (can contain other subdirs or files)

Я хочу добавить «среднюю» папку в середине указанного пути, что приведет к:

/foo/middle/bar/...

Что элегантно способ сделать это?

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Не уверен, что у вас есть или что вы хотите, но при условии, что ваш путь - строка

def path = "/foo/bar/baz/whee/yay"

Вы можете просто разбить строку на /

def segments = path.split('/')

insert один в позиции 2 (разделение оставило нам пустую запись перед начальным /)

def inserted = segments[0..1] + 'new' + segments[2..-1]

Затем соедините их вместе

assert inserted.join('/') == '/foo/new/bar/baz/whee/yay'
0 голосов
/ 08 апреля 2020

Да, так что вы можете иметь путь, подобный следующему, который представляет абсолютный путь foo / bar /

Path path = Paths.get("foo", "bar");

Тогда вы можете получить родительский элемент текущего пути.

Path parent = path.getParent();

Затем вы можете разрешить родному брату новый путь.

Path newChild = parent.resolve("middle");

Тогда вы не сможете создать этот путь, если он не существует.

Files.createDirectory(newChild);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...