根据文件名select数千个文件

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

这可能是一个非常简单的问题,但是,我广泛search了networking,找不到解决scheme,也许我使用了错误的术语。

罚款使用Windowsbatch file,C#,Java,Python,无论…

可能是一个想法将文件重命名为像xxfilename,所以我可以按文件名?

提前致谢。

使用c#:

foreach (var filePath in File.ReadAllLines(indexFile)) { if (File.Exists(filePath)) { var destinationPath = Path.Combine(destinationRoot, Path.GetFileName(filePath)); File.Copy(filePath, destinationPath); } } 

使用批处理文件:

 setlocal set destination=c:\Temp\Destination for /f %%f in (index.txt) do ( copy "%%f" "%destination%" ) endlocal 

如果文件包含文件名列表,您可以将其读出并将文件复制到您的目的地。

就像是:

 string destination = "D:\\"; foreach (var filename in File.ReadAllLines("fileWithFilenames").Where(f => File.Exists(f))) { File.Copy(filename, Path.Combine(destination, Path.GetFileName(filename))); } 

这些线上的东西可能会做…

  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 } }