5

ファイルを一時ディレクトリにコピーした後、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);
        }
    }
}
4

2 に答える 2