根据文件名选择数千个文件

时间:2013-03-15 02:55:47

标签: c# java python windows

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

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

使用Windows批处理文件,c#,Java,Python等等......

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

提前致谢。

4 个答案:

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