c# - 将文件提取到桌面时为 "System.UnauthorizedAccessException"

标签 c# .net winforms

我创建了一个脚本,用于将可执行文件从 Resources 提取到我的桌面。这在我的机器上有效,但由于用户名不同而无法在其他人的机器上使用。以下脚本完美运行:

private void button1_Click(object sender, EventArgs e)
{
    byte[] myfile = Properties.Resources.SOMETHING;
    File.WriteAllBytes("C:\\Users\\Alex\\Desktop\\SOMETHING.exe",myfile);
}

我做了一些研究,发现我需要使用 (Environment.GetFolderPath(Environment.SpecialFolder.Desktop)

所以我编译了这个脚本:

private void button1_Click(object sender, EventArgs e)
{
    byte[] myfile = Properties.Resources.SOMETHING;
    File.WriteAllBytes(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),myfile);
}

问题是它并没有说我的代码有错误,但是当我运行它并按下按钮时,我得到以下错误:

System.UnauthorizedAccessException Message=Access to the path 'C:\Users\Alex\Desktop' is denied.

我试过以管理员权限运行代码,但这也没有帮助。

最佳答案

在读取文件之前使用 File.SetAttributes(myfile, FileAttributes.Normal); 属性,它应该可以工作。

关于c# - 将文件提取到桌面时为 "System.UnauthorizedAccessException",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55091190/

相关文章:

c# - 将数据从文本框插入到 Postgresql

c# - 派生类在自己的静态方法中调用基类的静态方法

.net - 为什么此计时器不会在 .net 服务应用程序中启动?

c# - 表单没有响应,但计时器仍在运行

winforms - Infragistics UltraCombo 上的预设值

c# - 无法更改 Xamarin 表单中 CollectionView 内框架的背景颜色

c# - 如何访问添加到 HashSet 的最后一个对象?

c# - LINQ to Entities 无法识别方法 'System.String ToString(Int32)'

c# - 如何使异步事件连续运行?

c# - 如何只显示来自 SQL 数据库的 DataGrid 中的某些列?