获取文件的根路径

时间:2013-05-09 04:44:20

标签: c# winforms

我有这段代码来获取文件夹及其子目录中的所有文件。

FolderBrowserDialog fb = new FolderBrowserDialog();
            if (fb.ShowDialog() == DialogResult.OK)
            {
                foreach (string folder in System.IO.Directory.GetFiles(fb.SelectedPath, "*.*", System.IO.SearchOption.AllDirectories))
                    listBox1.Items.Add(Path.GetFullPath(folder));
            }

但它返回如下文件路径: C:\用户\ RANDOM \桌面\ TheSelectedFolder \ SubFolder1 \ Subfolder2 \ file.txt的 如何让它只返回Selected Folder的名称加上子目录的路径?没有驱动器号,用户名等

2 个答案:

答案 0 :(得分:1)

silliness = Path.Combine( Path.GetDirectoryName(fb.SelectedPath),
                          folder.Replace(fb.SelectedPath, String.Empty)
                         )

答案 1 :(得分:0)

如果您使用

System.IO.Path.GetDirectoryName(filePath)

其中

filePath = "C:\Users\RANDOM\Desktop\TheSelectedFolder\SubFolder1\Subfolder2\file.txt"

它应该返回

`"C:\Users\RANDOM\Desktop\TheSelectedFolder\SubFolder1\Subfolder2"`

然后你就可以使用像 @“^ [a-zA-Z] \:\ Users \ [^] + \”之类的正则表达式来删除你的路径不想要。

编辑:既然我的大脑已经听到了,我可以看到我已经给出了答案。

Path.Combine(Path.GetDirectoryName(selectedFolder),filePath.Replace(selectedFolder,String.Empty))