我发现了一个与我类似的问题,但不幸的是它没有答案。
我在 C# 中使用 StorageFile 类来重复创建、写入和删除文件。在我的第二次迭代中,它无法创建文件,返回拒绝访问错误。
这是我在 Visual Studio 2015 中放置的一个简单单元测试,用于演示该问题:
[TestMethod]
public async Task DeleteTest()
{
StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
byte[] array = System.Text.Encoding.ASCII.GetBytes("Test data");
int i = 1, max = 20;
string phase = "not started";
try
{
do
{
// create file
phase = "creating";
StorageFile file = await folder.CreateFileAsync("test" /*,CreationCollisionOption.GenerateUniqueName*/);
// write data to the file
phase = "opening";
System.IO.Stream stream = await file.OpenStreamForWriteAsync();
phase = "writing";
await stream.WriteAsync(array, 0, array.Length);
phase = "flushing";
await stream.FlushAsync();
// delete file
phase = "deleting";
await file.DeleteAsync();
} while (++i <= max);
}
catch(Exception e)
{
Assert.Fail("While '{0}' on iteration {1}: {2}", phase, i, e.Message);
}
}
上述断言触发,报告:
在迭代 2 上“创建”时:访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))
如果有人可以让我知道我做错了什么,我将不胜感激。我对此束手无策。