我有这段代码来获取文件夹及其子目录中的所有文件。
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的名称加上子目录的路径?没有驱动器号,用户名等
答案 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))