C# winform程序,saveFileDialog1如何用后台代码控制,不出现对话框,直接保存到对应的项目文件夹中
我开发用的是VS08版,项目中用到上传图片,请教大神如何写后台代码将上传的图片保存到项目中的一个文件夹中?...
我开发用的是VS08版,项目中用到上传图片,请教大神如何写后台代码将上传的图片保存到项目中的一个文件夹中?
展开
3个回答
展开全部
给你个例子:
将一张图片上传到指定的文件夹,然后在窗体上的PictrueBox控件中显示出来,效果看图
代码如下:
private void btnUpload_Click(object sender, EventArgs e)
{
//创建一个对话框对象
OpenFileDialog ofd = new OpenFileDialog();
//为对话框设置标题
ofd.Title = "请选择上传的图片";
//设置筛选的图片格式
ofd.Filter = "图片格式|*.jpg";
//设置是否允许多选
ofd.Multiselect = false;
//如果你点了“确定”按钮
if (ofd.ShowDialog()== System.Windows.Forms.DialogResult.OK)
{
//获得文件的完整路径(包括名字后后缀)
string filePath = ofd.FileName;
//将文件路径显示在文本框中
txtImgUrl.Text = filePath;
//找到文件名比如“1.jpg”前面的那个“\”的位置
int position = filePath.LastIndexOf("\\");
//从完整路径中截取出来文件名“1.jpg”
string fileName = filePath.Substring(position+1);
//读取选择的文件,返回一个流
using (Stream stream = ofd.OpenFile())
{
//创建一个流,用来写入得到的文件流(注意:创建一个名为“Images”的文件夹,如果是用相对路径,必须在这个程序的Degug目录下创建
//如果是绝对路径,放在那里都行,我用的是相对路径)
using (FileStream fs = new FileStream(@"./Images/" + fileName, FileMode.CreateNew))
{
//将得到的文件流复制到写入流中
stream.CopyTo(fs);
//将写入流中的数据写入到文件中
fs.Flush();
}
//PictrueBOx 显示该图片,此时这个图片已经被复制了一份在Images文件夹下,就相当于上传
//至于上传到别的地方你再更改路径
pbShow.ImageLocation = @"./Images/" + fileName;
}
将一张图片上传到指定的文件夹,然后在窗体上的PictrueBox控件中显示出来,效果看图
代码如下:
private void btnUpload_Click(object sender, EventArgs e)
{
//创建一个对话框对象
OpenFileDialog ofd = new OpenFileDialog();
//为对话框设置标题
ofd.Title = "请选择上传的图片";
//设置筛选的图片格式
ofd.Filter = "图片格式|*.jpg";
//设置是否允许多选
ofd.Multiselect = false;
//如果你点了“确定”按钮
if (ofd.ShowDialog()== System.Windows.Forms.DialogResult.OK)
{
//获得文件的完整路径(包括名字后后缀)
string filePath = ofd.FileName;
//将文件路径显示在文本框中
txtImgUrl.Text = filePath;
//找到文件名比如“1.jpg”前面的那个“\”的位置
int position = filePath.LastIndexOf("\\");
//从完整路径中截取出来文件名“1.jpg”
string fileName = filePath.Substring(position+1);
//读取选择的文件,返回一个流
using (Stream stream = ofd.OpenFile())
{
//创建一个流,用来写入得到的文件流(注意:创建一个名为“Images”的文件夹,如果是用相对路径,必须在这个程序的Degug目录下创建
//如果是绝对路径,放在那里都行,我用的是相对路径)
using (FileStream fs = new FileStream(@"./Images/" + fileName, FileMode.CreateNew))
{
//将得到的文件流复制到写入流中
stream.CopyTo(fs);
//将写入流中的数据写入到文件中
fs.Flush();
}
//PictrueBOx 显示该图片,此时这个图片已经被复制了一份在Images文件夹下,就相当于上传
//至于上传到别的地方你再更改路径
pbShow.ImageLocation = @"./Images/" + fileName;
}
展开全部
saveFileDialog和openFileDialog其实只是一个工具,目的是方便用户选择文件,也就是获取要操作的文件路径(FileName属性就是路径),但是,如果你自己知道文件路径,直接对路径操作就好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不用对话框,直接写保存路径就是了
追问
能否贴点代码详细说明下,还有默认保存路径如何写,如何用相对路径,而不是按物理路径一步步的写?
追答
1、获取你程序运行的目录为P
2、P后面加上你想要保存的目录,比如说p\save
3、将文件直接保存到p\save\name.ext
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询