-3

私の問題は、ディレクトリを読んでいて、ファイルを名前でフィルタリングすることですが、このディレクトリにも別の名前のファイルがあります。私がやろうとしているのは、このファイルを別の名前で入力し、行番号6を読み取ることです。この行が同じ名前の他のファイルの名前と一致する場合は、このファイルをに保存し、後で処理するために配列します。

前もって感謝します。

4

2 に答える 2

0

これを試して:

String dir = @"C:\Temp";
String pattern = "*.txt";
var foundFiles = new List<String>();

foreach (String filePath in Directory.EnumerateFiles(dir, pattern))
{
    foreach (String filePath2 in Directory.EnumerateFiles(dir, pattern))
    {
         if (filePath != filePath2 &&
             File.ReadLines(filePath2).ElementAtOrDefault(5) == Path.GetFileName(filePath))
             foundFiles.Add(filePath);
    }
}

注:完全にテストされておらず、IDEなしで記述されていますが、とにかく役立つかもしれません。

于 2012-09-14T17:12:08.693 に答える
0

これは、特定の行を読み取る最も簡単な方法です。

string dir = "C:\\\\someFile.txt";
int LineNo = 1; //Pick a line
string ChosenLine = File.ReadAllLines(dir)[lineNo];

フォルダ内のすべてのファイルに対してこれを実行する場合は、forまたはforeachを使用します。

void someMethod()
{
    string folderToScan = "C:\\\\someFolder\\";
    foreach(string dir in Directory.GetDirectories(folderToScan).ToList())
    {
        if(isExtention(dir,".txt"))
        {
            int LineNo = 1; //Pick a line
            string ChosenLine = File.ReadAllLines(dir)[lineNo];
        }
    }
}

bool isExtention(string f, string extention)
{
    return f != null && f.EndsWith(extention, StringComparison.Ordinal);
}
于 2012-09-14T19:01:28.233 に答える