1

30kのファイル名を含むテキストファイルがあり、100kの他のファイルを含むWindowsフォルダーから抽出する必要があるという問題があります。

これはおそらく非常に単純な問題ですが、Webを広範囲に検索して解決策を見つけることができず、間違った用語を使用している可能性があります。

Windowsバッチファイル、c#、Java、Pythonなどを使用して問題ありません...

ファイル名をxxfilenameのような名前に変更して、ファイル名で注文できるようにすることをお勧めしますか?

前もって感謝します。

4

4 に答える 4

2

c#の使用:

foreach (var filePath in File.ReadAllLines(indexFile))
{
    if (File.Exists(filePath))
    {
        var destinationPath = Path.Combine(destinationRoot, Path.GetFileName(filePath));
        File.Copy(filePath, destinationPath);
    }
}
于 2013-03-15T03:09:23.260 に答える
2

バッチファイルの使用:

setlocal
set destination=c:\Temp\Destination

for /f %%f in (index.txt) do (
    copy "%%f" "%destination%"
)

endlocal
于 2013-03-15T03:20:28.497 に答える
1

ファイルにファイル名のリストが含まれている場合は、それらを読み取って、ファイルを宛先にコピーするだけです。

何かのようなもの:

string destination = "D:\\";
foreach (var filename in File.ReadAllLines("fileWithFilenames").Where(f => File.Exists(f)))
{
    File.Copy(filename, Path.Combine(destination, Path.GetFileName(filename)));
}
于 2013-03-15T03:08:49.150 に答える
1

これらの行で何かが行われる可能性があります...

    BufferedReader reader = new BufferedReader(new FileReader("somefile"));
    String line;
    File file;

    File folder = new File("somefolder");
    List<String> files = Arrays.asList(folder.list());

    while((line = reader.readLine()) != null) {
        if(files.contains(line)) {
            file = new File(line);
            // do something with the file
        }
    }
于 2013-03-15T03:10:37.787 に答える