如何使用文件夹名称c#获取文件夹路径
本文关键字:文件夹 获取 路径 何使用 | 更新日期: 2023-09-27 18:29:02
我使用C#通过提供文件夹名称来获得windows系统中特定文件夹的确切路径。是他们通过提供文件夹名称来获取文件夹路径的任何方法,其中文件夹名称将是唯一的。
更新:
文件夹是在运行时创建的,名称为当前时间。这过程由应用程序完成。这里我知道文件夹名称,但我不知道路径,因为路径是由用户在安装和安装是在很长时间之前完成的。
这大大改变了这个问题。为什么不使用应用程序来告诉你它的位置:
http://msdn.microsoft.com/en-us/library/system.windows.forms.application.startuppath.aspx
我很久以前就有过类似的想法,并将其作为代码项目提示:
http://www.codeproject.com/Tips/132804/Open-folders-using-a-Run-Command
否则,你需要为电脑上的每个文件夹建立索引,使它们具有唯一的名称,并以这种方式查找完整路径。
我的另一个建议是使用LogParser作为使用C#查找磁盘上所有exe文件的最有效方法?这是一款免费的微软产品,但我不确定是否有重新提取权限,上次我使用它时,我不得不将其单独包含在我的包中。它在飞行中装满了,比超速行驶的火车还快!
我发现了一个日志解析器的例子,它可以找到文件夹,如果有用的话,你可以尝试并调整它:
SELECT TOP 1 * FROM C:'TFS'Project'*.* WHERE INDEX_OF(Path, 'Database') > 0
那边的好人http://visuallogparser.codeplex.com/有为我们提供了源代码。
在VS2010中打开VisualLogParser解决方案,忽略关于调试的提示,在解决方案加载后,F5,将组合框设置为FS(FileSystem),粘贴到此查询中,然后按go。
您可能会使用这样的东西,但速度会相当慢,这取决于需要查看的文件夹数量。
像FindFullPath(rootFolder, folderNameToLookFor)
一样使用
public static string FindFullPath(string path, string folderName)
{
if (string.IsNullOrWhiteSpace(folderName) || !Directory.Exists(path))
{
return null;
}
var di = new DirectoryInfo(path);
return findFullPath(di, folderName);
}
private static string findFullPath(DirectoryInfo directoryInfo, string folderName)
{
if (folderName.Equals(directoryInfo.Name, StringComparison.InvariantCultureIgnoreCase))
{
return directoryInfo.FullName;
}
try
{
var subDirs = directoryInfo.GetDirectories();
return subDirs.Select(subDir => findFullPath(subDir, folderName)).FirstOrDefault(fullPath => fullPath != null);
}
catch
{
// DirectoryNotFound, Security, UnauthorizedAccess
return null;
}
}
请参阅以下链接
string dirName = new DirectoryInfo(@"c:'projects'roott'wsdlproj'devlop'beta2'text").Name;