Доступ к тропе C:UsersxxxDesktop ' отказано
я тщательно искал весь доступ Запрещенные вопросы и не нашел никаких вопросов, связанных с доступом к windows form в моей собственной системе все вопросы связаны с веб-приложением.
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:UsersSainathDesktop", 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);
}
}
4 ответов
для доступа к этой папке может потребоваться запустить программу/IDE от имени администратора. Не знаю почему, но у меня была та же проблема. Что-то делать с разрешениями по умолчанию Windows. Дайте нам знать, если это работает!
Edit:
путь ведет к папке, а не к файлу. Я считаю, что потоки файлов на языках на основе C должны фактически указывать на файл, а не на каталог: ie. 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 должна работать с теми же правами доступа, что и папки, к которым вы пытаетесь получить доступ. Попытка получить доступ к чему-то вроде "Мои документы" и другим местоположениям, для которых вам не нужны повышенные права доступа, не должна требовать повышения визуального Студия.
вам не нужно "приобретать" или изменять разрешения на файлы и папки, к которым вы обычно можете получить доступ от того же пользователя, с которым вы работаете.
ССЫЛКА НА ИСТОЧНИК: Введите описание ссылки здесь