C#从字符串中删除x父目录数

时间:2019-03-23 23:12:35

标签: c# directory

我正在从目录中读取几个文件,并将其路径插入字符串数组中,如下所示:

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

数组中的每个元素如下:

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

我希望他们最终看起来像这样:

\\filepath3\\filepath4\\file.txt

注意:就我而言,父目录的名称(filepath1filepath2等)并不总是相同。

删除前X个父目录的最有效方法是什么?

1 个答案:

答案 0 :(得分:2)

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 => ...)为数组中的每个项目(a)选择新产生的字符串

Live Demo