如何使用文件夹名称c#获取文件夹路径

本文关键字:文件夹 获取 路径 何使用 | 更新日期: 2023-09-27 18:29:02

我使用C#通过提供文件夹名称来获得windows系统中特定文件夹的确切路径。是他们通过提供文件夹名称来获取文件夹路径的任何方法,其中文件夹名称将是唯一的。

如何使用文件夹名称c#获取文件夹路径

更新:

文件夹是在运行时创建的,名称为当前时间。这过程由应用程序完成。这里我知道文件夹名称,但我不知道路径,因为路径是由用户在安装和安装是在很长时间之前完成的。

这大大改变了这个问题。为什么不使用应用程序来告诉你它的位置:

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;