我有一个使用FileBrowserDialog返回的路径名C:\Users\<user name>\Documents\Folder
,我希望使用My Documents\Folder
显示。
除了使用
pathname.StartsWith(My.Computer.FileSystem.SpecialDirectories.MyDocuments)
查看“我的文档”中的路径名是否“属于”,是否有另一种方法可以将路径名转换为使用My Documents
?
答案 0 :(得分:1)
您可以使用此方法将父目录循环到根目录:
DirectoryInfo directory = new DirectoryInfo("C:\\Users\\Tim\\Documents\\Folder\\file.ext");
string myDocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
bool isMyDocs = directory.FullName == myDocs;
while (!isMyDocs && (directory = directory.Parent) != null)
isMyDocs = directory.FullName == myDocs;
// use your personal folder-name acc. to isMyDocs
更新:
我应该重新说出这个问题。我想以速记路径结束 符号,例如\ My Documents \ Folder \ file.ext
我认为很清楚:
string yourFile = "C:\\Users\\Tim\\Documents\\Folder\\file.ext";
string yourDir = Path.GetDirectoryName(yourFile);
DirectoryInfo directory = new DirectoryInfo(yourDir);
string myDocs = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
bool isMyDocs = directory.FullName == myDocs;
while (!isMyDocs && (directory = directory.Parent) != null)
isMyDocs = directory.FullName == myDocs;
string personalPath = yourDir;
if(isMyDocs)
{
personalPath = Path.Combine("My Documents", "Folder", Path.GetFileName(yourFile));
}