将文件复制到临时目录后,由于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);
}
}
}