在将文件复制到临时目录后,由于UnauthorizedAccessException异常,我无法删除该副本。这里的想法是获取文件的副本,压缩它,然后删除该副本,但是在删除
File.Copy
和File.Delete
之间的所有代码后,我仍然会收到异常。退出程序会释放锁定并允许我无问题地删除副本。
是否有一种方法可以在不引起此持久锁定的情况下进行复制(并保留文件元数据,如LastModified)?或者解除锁定的方法?在File.Copy
完成后,应该对复制的文件进行锁定吗?
我正在使用Visual C# 2010 SP1,针对.NET Framework 4.0。
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);
}
}
}
C:\test.txt
文件? - Alex FilipoviciC:\
中的文件,则使用相同帐户无法在任何地方删除该文件。 - Alex Filipovici