我有一个问题,我有一个包含30k文件名的文本文件,我需要从包含100k其他文件的Windows文件夹中提取。
这可能是一个非常简单的问题,但是,我已经在网上进行了广泛的搜索,无法找到解决方案,也许我使用了错误的术语。
使用Windows批处理文件,c#,Java,Python等等......
可能是一个想法,将文件重命名为xxfilename,以便我可以按文件名排序?
提前致谢。
答案 0 :(得分: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);
}
}
答案 1 :(得分:2)
使用批处理文件:
setlocal
set destination=c:\Temp\Destination
for /f %%f in (index.txt) do (
copy "%%f" "%destination%"
)
endlocal
答案 2 :(得分: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)));
}
答案 3 :(得分: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
}
}