How can I save Image files in in my project folder?
c#, openfiledialog, picturebox, winforms
Solution
Actually the `string iName = opFile.FileName;` is not giving you the full path. You must use the `SafeFileName` instead. I assumed that you want your folder on your `exe` directory also. Please refer to my modifications:
OpenFileDialog opFile = new OpenFileDialog();
opFile.Title = "Select a Image";
opFile.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*";
string appPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\ProImages\"; // <---
if (Directory.Exists(appPath) == false) // <---
{ // <---
Directory.CreateDirectory(appPath); // <---
} // <---
if (opFile.ShowDialog() == DialogResult.OK)
{
try
{
string iName = opFile.SafeFileName; // <---
string filepath = opFile.FileName; // <---
File.Copy(filepath, appPath + iName); // <---
picProduct.Image = new Bitmap(opFile.OpenFile());
}
catch (Exception exp)
{
MessageBox.Show("Unable to open file " + exp.Message);
}
}
else
{
opFile.Dispose();
}
Problem
In my Windows application, I have a `PictureBox` and a `Button` control. I want to load an Image file from user from the button's `OnClick` event and save that image file in a folder name "proImg" which is in my project. Then I want to show that image in the `PictureBox`. I have written this code, but it is not working: ``` OpenFileDialog opFile = new OpenFileDialog(); opFile.Title = "Select a Image"; opFile.Filter = "jpg files (*.jpg)|*.jpg|All files (*.*)|*.*"; if (opFile.ShowDialog() == DialogResult.OK) { try { string iName = opFile.FileName; string filepath = "~/images/" + opFile.FileName; File.Copy(iName,Path.Combine("~\\ProImages\\", Path.GetFileName(iName))); picProduct.Image = new Bitmap(opFile.OpenFile()); } catch (Exception exp) { MessageBox.Show("Unable to open file " + exp.Message); } } else { opFile.Dispose(); } ``` It's not able to save the image in the "proImg" folder.