编写电子邮件Windows 8.1 C时访问被拒绝的异常#

时间:2014-07-06 14:40:50

标签: c# windows-phone-8.1

private async Task<StorageFile> GetCsvFile()
        {
            var localFolder = KnownFolders.DocumentsLibrary;
            var file = await localFolder.CreateFileAsync("NRBcatalogue.csv", Windows.Storage.CreationCollisionOption.ReplaceExisting);

            String rk = "";
            for (int i = 0; i < k1.Count; i++)
            {
                rk += k1[i] + "\n";   
            }
            await Windows.Storage.FileIO.WriteTextAsync(file, rk);
            return file;
        }

        private async void AppBarButton_Click_1(object sender, RoutedEventArgs e)
        {
            EmailMessage email = new EmailMessage();
            email.To.Add(new EmailRecipient("brk27.007@gmail.com"));
            email.Subject = "NRB Catalogue";
            var file = await GetCsvFile(); //Error occured here
            email.Attachments.Add(new EmailAttachment(file.Name, file));
            await EmailManager.ShowComposeNewEmailAsync(email);
        }
  

错误详情是:   mscorlib.ni.dll中发生了'System.UnauthorizedAccessException'类型的第一次机会异常。   mscorlib.ni.dll中出现“System.UnauthorizedAccessException”类型的异常,但未在用户代码中处理。   其他信息:访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))

1 个答案:

答案 0 :(得分:2)

您正在尝试访问您没有权限的位置var localFolder = KnownFolders.DocumentsLibrary;

这是有效的例外,因为您无法从Windows手机应用访问DocumentsLibrary位置。此位置仅适用于Windows store app。您可以使用其他位置但在使用之前请确保您已将此位置添加为应用清单中的功能。供参考检查This Link

因此必须选择您的应用可以访问的其他位置。例如LocalFolder,IsolatedStorage等。对于Localfolder,只需通过以下代码更改您的访问文件夹代码。

 var localFolder =  Windows.Storage.ApplicationData.Current.LocalFolder;

希望它能解决你的问题。干杯:)