Как мне получить корневой каталог относительного пути - PullRequest
0 голосов
/ 20 декабря 2018

Мне нужно извлечь имя первого из первого каталога в относительном пути.

Я знаю, что могу пойти дальше:

relPath := "a/b/c/file.so"
splitPath := strings.Split(relPath, string(os.PathSeparator))
rootDirName := splitPath[0]

Есть ли лучший способ?

1 Ответ

0 голосов
/ 20 декабря 2018

Если вы спрашиваете, есть ли способ сделать это с помощью 1 стандартной функции Go: не то, что я знаю.

Альтернативный способ будет:

relPath := "a/b/c/file.so"
i := strings.Index(relPath, string(os.PathSeparator))
rootDirName := relPath[:i]

Или есливозможно, что путь вообще не содержит /:

relPath := "a/b/c/file.so"
i := strings.Index(relPath, string(os.PathSeparator))
rootDirName := ""
if i != -1 {
    rootDirName = relPath[:i]
}         

Это дает преимущество, заключающееся в том, что нет необходимости разбивать всю строку, и поэтому может быть немного быстрее на длинных путях.

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