所以我有这个文件名.avi 列表。每个都来自不同的目录,路径。我有一个包含这些列表的 txt 文件。
当它们都在同一个文件夹中时,这很容易,当我将它们都放在一个文件夹中时,我必须相应地更改每个文件的目录路径。
谢谢
你会想要使用这个System.IO.Path
类。将Path.GetDirectoryName
返回目录名称(不带结尾的 '\' 字符)。
类中还有其他有用的方法Path
,例如GetFileName
和GetExtension
。
您可以使用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);
}
}
}