我在访问和复制图像文件时遇到问题。这是我的代码
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.ShowDialog();
string fileName = "";
fileName = openFileDialog1.FileName;
string newPath = @"C:\Users\grafik5\source\repos\ConsoleApplication1\x64\Debug";
string newFileName = @"image";
string ext = Path.GetExtension(fileName);
openFileDialog1.Dispose();
newPath = Path.Combine(newPath, newFileName + ext);
if (fileName != "")
{
try
{
FileSecurity oFileSecurity = new FileSecurity();
oFileSecurity.AddAccessRule(new FileSystemAccessRule("Everyone", FileSystemRights.FullControl, AccessControlType.Allow));
File.SetAccessControl(fileName, oFileSecurity);
}
catch (UnauthorizedAccessException)
{
MessageBox.Show("Error");
}
File.Copy(fileName, newPath, true);
Process process = new Process();
process.StartInfo.FileName = @"C:\Users\grafik5\source\repos\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe";
process.Start();
process.WaitForExit();
flag1 = true;
}
}
我不知道该怎么办。我的程序总是抛出错误消息。 另一个过程将读取复制的图像。它将进行图像处理。 工作过程没有问题。我检查了
错误出在File.SetAccessControl(fileName,oFileSecurity);
答案 0 :(得分:1)
任何年轻的 Codeling Jedi 都应该查看该文档,我认为您已经知道了。但是-
File.SetAccessControl Method (String, FileSecurity)
应用FileSecurity描述的访问控制列表(ACL)条目 对象指向指定文件。
例外
UnauthorizedAccessException
- path参数指定了一个只读文件。
- 当前平台不支持此操作。
- path参数指定了一个目录。
- 呼叫者没有所需的权限。
这可能是权限问题。最简单的解决方法是确保您的应用程序具有执行此操作的适当权限。
要么
但是,应检查其他条件是否适用