获取文件's根路径

本文关键字:路径 文件 获取 | 更新日期: 2023-09-27 18:12:51

我有这个代码从一个文件夹和它的子目录中获取所有的文件。

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: '用户桌面' '随机' TheSelectedFolder ' SubFolder1 ' Subfolder2 ' file.txt 我怎样才能使它只返回所选文件夹的名称加上子目录的路径?没有驱动器号,用户名等

获取文件's根路径

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

如果使用

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))