File.GetFiles 或 File.EnumerateFiles 锁定文件?

Ric*_*olo 5 c# file

这段代码的工作原理:

File.Copy(file, Path.Combine(destinationFolder, file), true);
Run Code Online (Sandbox Code Playgroud)

这不起作用:

foreach (string file in Directory.GetFiles(sourceFolder))
{
    File.Copy(file, Path.Combine(destinationFolder, file), true);
}
Run Code Online (Sandbox Code Playgroud)

它在第一个文件中给出了一个例外:

该进程无法访问文件“C:\Users\Ricardo\Desktop\Palomas\IMG_20130215_134854.jpg”,因为它正在被另一个进程使用。

为什么?看起来 Directory.GetFiles 或 Directory.EnumerateFiles 锁定了文件

Ric*_*olo 4

foreach 中的一个简单错误。

我试图复制并粘贴在同一个地方。

固定这样:

    foreach (string file in Directory.EnumerateFiles(sourceFolder))
    {
        File.Copy(file, Path.Combine(destinationFolder, Path.GetFileName(file)), true);
    }
Run Code Online (Sandbox Code Playgroud)