我可能会失明,但这让我很难过。使用System.UnauthorizedAccessException在我的本地计算机(但不在我们的构建服务器上)上进行以下单元测试失败。
[TestMethod()]
public void UserPreferences_LocalApplicationDataPath_PathAlwaysExists()
{
//setup: get the proposed path and then delete the bottom folder and any existing files
string logPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string actual = System.IO.Path.Combine(logPath, @"Autoscribe\Matrix\Gemini");
//if the folder is there, first delete it
if (Directory.Exists(actual))
{
//log some information about what is going on
Console.WriteLine("Attempting to delete " + actual + " as user " + Environment.UserName);
Directory.Delete(actual, true); // <-THROWS EXCEPTION HERE
Console.WriteLine("Deleted");
}
//action
actual = UserPreferencesManager.LocalApplicationDataPath;
//assert that getting the path forces it to be created.
Assert.IsTrue(Directory.Exists(actual));
}
报告的Environment.UserName值是“拥有”本地AppData文件夹的Windows用户。为什么不能删除文件夹?奇怪的是,我在运行测试的所有机器上都没有这个问题(所有Windows 7)。
答案 0 :(得分:0)
您可能无法在本地删除该文件夹,因为您仍然有其他应用程序在其中运行该访问文件。也许您已经打开记事本来检查此文件夹中的日志文件?
构建服务器没有这些问题,因为没有用户或进程在计算机上实际“正常工作”。