如何从文件名获取文件路径和目录

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

我有这个文件名。avi列表。每一个都来自不同的目录,路径。我有一个列表的文本文件。

当它们都在同一个文件夹时,这很容易,当我把它们都放在一个文件夹时,我必须为每个文件相应地改变目录路径。

谢谢

如何从文件名获取文件路径和目录

您将需要使用System.IO.Path类。Path.GetDirectoryName将返回目录名(不带'''字符)。

Path类中还有其他有用的方法,如GetFileNameGetExtension

您可以使用Directory.GetFiles()方法搜索子目录。我建议缩小搜索范围,因为在访问受限制的文件夹时会遇到异常,但通常您可以使用如下方法,它将返回文件名的第一个出现的路径或返回null:

public string SearchFileSystem(string filename)
{
    string [] files = null;
    try
    {
         files = Directory.GetFiles("C:''", filename, SearchOption.AllDirectories);
    }
    catch (Exception e)
    {
         MessageBox.Show(e.Message);
    }
    return files==null?null:files.FirstOrDefault();
}

这会给你文件名

fullPath = Path.GetFullPath(file);
fileName = Path.GetFileName(fullPath);

,这会给你文件路径

shortPath = fullPath.Substring(0, inputText.LastIndexOf("'"));
var sr = new StreamReader("filelist.txt");
while(!sr.EOF)
{
    string[] ListFiles = Directory.GetFiles("D:'movies'", 
                                            sr.ReadLine()/*your file name is the search pattern*/, 
                                            SearchOption.AllDirectories);
    if(ListFIles.Count > 0)
    {
        //File Found
        foreach(var f in ListFiles)
        {
            string fullPath = Path.GetFullPath(file);
            string fileName = Path.GetFileName(fullPath);
        }
    }
}