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

时间:2013-04-30 09:34:43

标签: c# .net

所以我有这个filenames.avi列表。每个来自不同的目录,路径。我有一个列表的txt文件。

如果它们都在同一个文件夹中,那么当我将每个文件夹放在一个文件夹中时,我必须相应地更改每个文件的目录路径。

谢谢

4 个答案:

答案 0 :(得分:5)

您需要使用System.IO.Path课程。 Path.GetDirectoryName将返回目录名称(不带尾随'\'字符)。

Path课程中还有其他有用的方法,例如GetFileNameGetExtension

答案 1 :(得分:1)

您可以使用Directory.GetFiles()方法和搜索子目录。我建议缩小搜索范围,因为在访问受限制的文件夹时会出现例外情况,但通常可以使用类似下面的方法来返回第一次出现文件名的路径,或者返回null:< / p>

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();
}

答案 2 :(得分:0)

这将为您提供文件名

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

这将为您提供文件路径

shortPath = fullPath.Substring(0, inputText.LastIndexOf("\"));

答案 3 :(得分:0)

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);
        }

    }

}