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

C# C从字符串中删除x个父目录,c#,directory,C#,Directory,我正在从一个目录中读取几个文件,并将它们的路径插入一个字符串数组,如下所示: string[] file_tree = Directory.GetFiles(Path.GetDirectoryName(file_path), "*.*", SearchOption.AllDirectories); 数组中的每个元素如下所示: C:\\filepath1\\filepath2\\filepath3\\filepath4\\file.txt 我希望他们最终看起来像这样: \\filepath3\

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

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个父目录的最有效方法是什么

int x = 2;
file_tree = file_tree.Select(a => string.Join("\\",a.Split('\\').Skip(x).ToArray())).ToArray();
说明:

a、 拆分“\\”将字符串拆分为\\

.Skipx从中跳过x元素

string.Join\,result将result中的项与\\连接,并生成一个字符串

文件\u tree.Selecta=>。。。对于数组中的每个项,a选择新生成的字符串


谢谢你能不能加一点解释,让我能理解每件作品的功能?太棒了,太完美了!