C # Удалить x Количество родительских каталогов из строки - PullRequest
1 голос
/ 24 марта 2019

Я читаю несколько файлов из каталога и вставляю их путь в массив строк примерно так:

string[] file_tree = Directory.GetFiles(Path.GetDirectoryName(file_path), "*.*", SearchOption.AllDirectories);

Каждый элемент в массиве выглядит так:

C:\\filepath1\\filepath2\\filepath3\\filepath4\\file.txt

Я бы хотел, чтобы они выглядели так:

\\filepath3\\filepath4\\file.txt

Примечание. В моем случае имена родительских каталогов (filepath1, filepath2 и т. Д.) Не всегда совпадают.

Каков наиболее эффективный способ удаления верхнего X количества родительских каталогов?

1 Ответ

2 голосов
/ 24 марта 2019
int x = 2;
file_tree = file_tree.Select(a => string.Join("\\",a.Split('\\').Skip(x).ToArray())).ToArray();

Пояснение:

a.Split('\\') разбивает строку на \\

.Skip(x) пропускает x элемент из него

string.Join("\\", result) объединяет элементы в результате с \\ и создает строку

file_tree.Select(a => ...) для каждого элемента (а) в массиве выбирается новая произведенная строка

Демоверсия

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