![](/img/trans.png)
[英]Access to the path 'C:\Users\mehdi\Desktop\sample\Test' is denied
[英]Access to the path 'C:\Users\xxx\Desktop' is denied
我已经彻底搜索了整个拒绝访问的问题,但没有发现任何与在我自己的系统上访问 Windows 表单相关的问题,所有问题都与 Web 应用程序有关。
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
byte[] imgdata;
FileStream fsrw;
string fname;
openFileDialog1.Filter = "Sai Files(*.JPG;*.GIF)|*.jpg;*.gif|All files (*.*)|*.*";
openFileDialog1.ShowDialog();//opens the dialog box
fname = openFileDialog1.FileName;//stores the file name in fname
pictureBox1.ImageLocation = fname;//gives the image location to picturebox
fsrw = new FileStream("C:\\Users\\Sainath\\Desktop", FileMode.Open, FileAccess.ReadWrite);
imgdata = new byte[fsrw.Length];
fsrw.Read(imgdata, 0, Convert.ToInt32(fsrw.Length));
fsrw.Close();
string s = "insert into imagetest values(@p1,@p2)";
SqlConnection con = new SqlConnection("server=.;Data Source=.;Initial Catalog=Work;Integrated Security=True");
SqlCommand cmd = new SqlCommand(s, con);
cmd.Parameters.AddWithValue("@p1", imgdata);
cmd.Parameters.AddWithValue("@p2", fname);
con.Open();
int i = cmd.ExecuteNonQuery();
con.Close();
Console.WriteLine(i);
}
}
由于 Windows 默认权限的工作方式,您可能必须以管理员身份运行程序/IDE 才能访问该文件夹。
更多上下文:
该路径通向一个文件夹 - 而不是一个文件。 我相信基于 C 的语言中的 FileStreams 实际上必须指向一个文件,而不是一个目录:即。 C:\\Users\\Username\\Desktop\\file.extension
您可能没有意识到您正在尝试打开桌面文件夹,然后尝试将其用作文件。
如果您的意图是将图像的字节写入数据库,那么您的代码应该是
fsrw = new FileStream(fname , FileMode.Open, FileAccess.ReadWrite);
"C:\\\\Users\\\\username\\\\Desktop"
是我的目录; 不是文件。
由于您正在尝试打开文件,因此:
fsrw = new FileStream("C:\\Users\\Sainath\\Desktop", FileMode.Open, FileAccess.ReadWrite);
... 应该
var fullpath = Path.Combine("C:\\Users\\Sainath\\Desktop", fname);
fsrw = new FileStream(fullpath, FileMode.Open, FileAccess.ReadWrite);
确保使用完全限定的名称,包括目标和源的文件名。 (例如 C:\\Source\\file.ext、C:\\Destination\\file.ext)
Visual Studio 应以与您尝试访问的文件夹相同的访问权限运行。 尝试访问诸如“我的文档”之类的内容以及您不需要提升访问权限的其他位置不应要求您提升 Visual Studio。
您不必“获取”或更改通常可以从运行 VS 的同一用户访问的文件和文件夹的权限。
链接到源: 在此处输入链接描述
我发现文件的只读标志(当设置为打开时)会阻止 FileStream 和 MemoryMappedFile 对象打开和读取文件。 有两种解决方案: 取消只读或者将FileStream/MemoryMappedFile改为在FileMode.Read/MemoryMappedFileAccess.Read中打开; FileStream 的默认读/写行为是读/写。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.