ファイルを一時ディレクトリにコピーした後、UnauthorizedAccessException例外が原因でコピーを削除できません。ここでのアイデアは、ファイルのコピーを取得し、圧縮してからコピーを削除することですが、その間のすべてのコードを削除した後File.Copy
でもFile.Delete
例外が発生します。プログラムを終了するとロックが解除され、問題なくコピーを削除できます。
この永続的なロックを発生させずにコピーする (そして LastModified のようなファイル メタデータを保持する) 方法はありますか? またはロックを解除する方法は?終了後にコピーしたファイルをロックする必要がありますFile.Copy
か?
.NET Framework 4.0 を対象とする Visual C# 2010 SP1 を使用しています。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Xml;
namespace Test
{
class Program
{
static void Main(string[] args)
{
String FileName = "C:\\test.txt";
// Generate temporary directory name
String directory = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
// Temporary file path
String tempfile = Path.Combine(directory, Path.GetFileName(FileName));
// Create directory in file system
Directory.CreateDirectory(directory);
// Copy input file to the temporary directory
File.Copy(FileName, tempfile);
// Delete file in temporary directory
File.Delete(tempfile);
}
}
}