'System.UnauthorizedAccessException'上读取文件没有扩展名

时间:2013-01-13 10:48:33

标签: c# windows-8

我正在尝试在Windows 8应用中阅读chrome书签文件。问题是我收到'System.UnauthorizedAccessException'异常。所以基本上你必须在应用程序清单中注册文件类型关联,但文件没有扩展名。

档案:C:\Users\<User>\AppData\Local\Google\Chrome\User Data\Default\Bookmarks

这在Windows 8应用程序中是否可行?

更新

这是我的文件访问代码:

 public async Task<string> ReadFile(string filename)
        {
            if (await FileExists(filename))
            {
                var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(filename);
                var stream = await file.OpenReadAsync();
                var reader = new StreamReader(stream.AsStream());
                return await reader.ReadToEndAsync();
            }
            else return string.Empty;
        }

2 个答案:

答案 0 :(得分:1)

Windows 8应用无法访问任何随机文件系统位置。它只能访问

  • 应用程序文件夹(特定于您的应用程序)
  • 常见文件夹,如“我的图片”,“我的视频”等类似

有关完整详情,请参阅this文章

答案 1 :(得分:1)

解决方法是使用文件选择器。这允许最终用户手动选择文件系统上的文件。从文件选择器获得FileStorage对象后,即可打开并读取该文件。

您可以选择保存StorageFile供以后使用,这意味着您的应用可以稍后访问该文件,而最终用户无需再次选择该文件。

有关MSDN的更多信息:

File Open Picker

How to track recently used files and folders