当我尝试替换现有的隐藏文件时,我收到“Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
”错误。我无法设置检查属性的条件,因为此文件有时可能会隐藏,也可能不会隐藏。这是我正在使用的代码片段:
private static readonly SemaphoreSlim slimWrite = new SemaphoreSlim(initialCount: 1);
public void CreateFile(string fileName, string content)
{
StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
try
{
slimWrite.WaitAsync();
var localFolderTask = storageFolder.CreateFolderAsync(dirName, CreationCollisionOption.OpenIfExists);
localFolderTask.AsTask().Wait(timeout); //timeout = 10000
if (localFolderTask.Status == AsyncStatus.Completed)
{
var localFolder = localFolderTask.GetResults();
if (localFolder != null)
{
var fileTask = localFolder.CreateFileAsync(fileName, Windows.Storage.CreationCollisionOption.ReplaceExisting);
fileTask.AsTask().Wait(timeout);
if (fileTask.Status == AsyncStatus.Completed)
{
var file = fileTask.GetResults();
var writeTask = FileIO.WriteTextAsync(file, content);
writeTask.AsTask().Wait(timeout);
if (writeTask.Status == AsyncStatus.Completed)
{//Job complete; write to cache}
}
}
}
}
catch (Exception)
{ Log here... }
finally
{
slimWrite.Release();
}
}
CreateFileAsync(...)
行引发错误。有没有人遇到与Windows 8.1 Store项目类似的问题?
编辑:当我打开(GetFileAsync())隐藏文件时也会发生同样的错误!