【发布时间】:2018-03-09 09:17:02
【问题描述】:
我知道有很多关于获得的问题
“System.UnauthorizedAccessException”。
但是,我在任何这些问题中都找不到解决方案,因为大多数答案都参考了其中一个Microsoft 帮助页面。
我的情况: 我尝试将一些用户输入保存为 .csv,以便在需要时将其导入。
我的代码:
var csv = new System.Text.StringBuilder();
string dir = Path.Combine(Environment.GetFolderPath
(Environment.SpecialFolder.DesktopDirectory), "test.csv");
var newLine = string.Format("{0},{1},{2},{3},{4}", txtFirstName.Text, txtLastName.Text, txtEmail.Text,
txtPhone.Text, txtPlace.Text);
csv.AppendLine(newLine);
if (!File.Exists(dir))
{
using (FileStream fs = File.Create(dir))
{
Byte[] info = new System.Text.UTF8Encoding(true).GetBytes("FirstName,LastName,Email,Phone,Place");
// Add headers to the file.
fs.Write(info, 0, info.Length);
}
}
try
{
File.AppendAllText(dir, csv.ToString());
}
catch (Exception ex)
{
throw ex;
}
如您所见,我正在尝试将所有内容写入我的桌面,在一个名为“test.csv”的文件中。我以管理员身份运行 Visual Studio,我桌面上的文件不是只读的。 有人知道为什么这仍然失败吗?
编辑:我在台式计算机上将其作为标准 UWP 应用程序运行。
【问题讨论】:
-
您是否从任务管理器中检查了运行该应用程序的用户?当您在 File.Exists、File.Create 和 File.Append 遇到异常时?
-
UWP 对创建和访问文件非常严格。我建议先查看File Access Permissions documentation,然后查看Create, Write and Read Quickstart,并使用
Windows.Storage命名空间进行文件操作。 -
既然这是 UWP 应用,您是否在清单中添加了 broadFileSystemAccess?
-
您还应该关注代码中的命名。 file
dir... 的命名非常不清楚 -
有多种方法可以访问 UWP 中的各种文件系统位置,使用
StorageFolders- 如果它是已知文件夹,请查看 KnownFolders class。如果您想要更广泛的访问权限,您需要按照@KenTucker 的建议将BroadFileSystemAccess添加到清单中。
标签: c# uwp visual-studio-2017 windows-10 unauthorizedaccessexcepti