我有一个问题,我有一个包含 30k 文件名的文本文件,我需要从包含 100k 其他文件的 windows 文件夹中提取该文件。
这可能是一个非常简单的问题,但是,我在网上广泛搜索并找不到解决方案,也许我使用了错误的术语。
可以使用 Windows 批处理文件、c#、Java、Python 等等...
可能是将文件重命名为 xxfilename 这样的想法,以便我可以按文件名排序?
提前致谢。
使用批处理文件:
setlocal
set destination=c:\Temp\Destination
for /f %%f in (index.txt) do (
copy "%%f" "%destination%"
)
endlocal
使用 C#:
foreach (var filePath in File.ReadAllLines(indexFile))
{
if (File.Exists(filePath))
{
var destinationPath = Path.Combine(destinationRoot, Path.GetFileName(filePath));
File.Copy(filePath, destinationPath);
}
}
如果文件包含文件名列表,您可以将它们读出并将文件复制到您的目的地。
就像是:
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
}
}