更换/打开隐藏文件时,Windows 8.1 Store app上的0x80070005(E_ACCESSDENIED)

时间:2014-07-09 16:54:18

标签: c# .net windows-runtime windows-store-apps windows-8.1

当我尝试替换现有的隐藏文件时,我收到“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())隐藏文件时也会发生同样的错误!

0 个答案:

没有答案