1

我有一个问题,我有一个包含 30k 文件名的文本文件,我需要从包含 100k 其他文件的 windows 文件夹中提取该文件。

这可能是一个非常简单的问题,但是,我在网上广泛搜索并找不到解决方案,也许我使用了错误的术语。

可以使用 Windows 批处理文件、c#、Java、Python 等等...

可能是将文件重命名为 xxfilename 这样的想法,以便我可以按文件名排序?

提前致谢。

4

4 回答 4

2

使用批处理文件:

setlocal
set destination=c:\Temp\Destination

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

endlocal
于 2013-03-15T03:20:28.497 回答
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 回答
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 回答