0

だから私は filenames.avi のこのリストを持っています。それぞれが異なるディレクトリ、パスから来ています。それらのリストのtxtファイルがあります。

それらがすべて同じフォルダーにある場合は簡単ですが、それぞれが1つのフォルダーにある場合は、ファイルごとにディレクトリパスを変更する必要があります。

ありがとうございました

4

4 に答える 4

5

System.IO.Pathクラスを使用したいと思うでしょう。はPath.GetDirectoryName、ディレクトリ名を返します (末尾の「\」文字なし)。

Pathこのクラスには、 や など、他にも便利なメソッドがありGetFileNameますGetExtension

于 2013-04-30T09:41:50.370 に答える
1

メソッドを使用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();
}
于 2013-04-30T09:55:00.700 に答える
0

これにより、ファイル名が得られます

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

これにより、ファイルパスが得られます

shortPath = fullPath.Substring(0, inputText.LastIndexOf("\"));
于 2013-04-30T09:43:49.253 に答える
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);
        }

    }

}
于 2013-04-30T09:54:41.113 に答える