1

バックアップしたいファイルがありますが、「知っている」ファイルに「触れる」ものは何もありません。しかし、私はメッセージを受け取ります:

"The process cannot access the file 'C:\Cadence\SPB_Data\pcbenv\allegro.ilinit' because it is being used by another process

ソースコード:

string fileName = @"C:\Cadence\SPB_Data\pcbenv\allegro.ilinit";
string sourcePath = @"C:\Cadence\SPB_Data\pcbenv";
string targetPath = @"C:\Cadence\SPB_Data\pcbenv\backup";

// Use Path class to manipulate file and directory paths. 
string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
string destFile = System.IO.Path.Combine(targetPath, fileName);

// To copy a folder's contents to a new location: 
// Create a new target folder, if necessary. 
if (!System.IO.Directory.Exists(targetPath))
{
    System.IO.Directory.CreateDirectory(targetPath);
}

// To copy a file to another location and  
// overwrite the destination file if it already exists.
System.IO.File.Copy(sourceFile, destFile, true);

したがって、プログラムがこの行に到達するとすぐに、「 System.IO.File.Copy(sourceFile, destFile, true);」エラーが発生します。コピーを「強制」する方法はありますか?

4

3 に答える 3

0

他のプロセスがファイルを「読み取りロック」としてマークしている場合、ファイルをコピーすることはできません。

Process Explorerを使用して、ファイルをロックしているプロセスを特定することをお勧めします。

于 2013-06-18T23:54:11.503 に答える