winform程序获取项目根目录

我在Form1的窗体里有个Button1
在Button1的单机事件中,我如何获取“img”文件夹的路径
我需要保存图片到img文件夹下面
我使用的是c#语言
别给我debug的路径··我不需要
我现在的问题是如何把我在其他地方打开的图片保存到根目录下的image文件夹而不是debug下的文件夹
我用的是image.save方法···指定路径的时候不知道怎么做
openImageDialog.Filter = "图片|*.*";
if (openImageDialog.ShowDialog() == DialogResult.OK)
{
Image img = Image.FromFile(openImageDialog.FileName);
img.save( ?????);

对于你的问题,我的理解为:你做了一个窗体程序,需要打开一张图片,然后存如你当前执行的文件同级目录下的一个叫img的文件夹里。就是要保存到相对的exe文件同级的img文件夹。而不是写死了的路径。
在vs编写的程序,在debug文件夹里的文件就是你编写好的程序生成后产生的编译文件。可以将debug中的内容拷贝到其他位置去。也就是你做的应用程序了。运行其中的exe文件就可以。
而要保存图片到你说所的根目录下,代码如下:
获取根目录:Application.StartupPath;
以下是代码,亲测可用:
openFileDialog1.Filter = "图片|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Image img = Image.FromFile(openFileDialog1.FileName);
//文件名
string filename = openFileDialog1.FileName.Substring(openFileDialog1.FileName.LastIndexOf("\\") + 1);
//文件保存文件夹路径,此处【 Application.StartupPath 】就是根目录
//string savepath = Application.StartupPath + "\\img\\";
#region 保存路径为项目的根目录,从debug目录往上截取两级文件夹
string rootpath = Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf("\\"));
rootpath = rootpath.Substring(0, rootpath.LastIndexOf("\\"));
//文件保存文件夹路径
string savepath = rootpath + "\\img\\";
#endregion
//文件保存路径+文件名
string imgSavepath = savepath + filename;

//判断是否存在img文件夹
if (Directory.Exists(savepath))
{
//存在img文件夹
//判断该路径下是否已经存在同名文件
if (File.Exists(imgSavepath))
{
//提示是否覆盖
if (DialogResult.Yes != MessageBox.Show("图片已存在!", "该图片已存在,是否覆盖原图片?", MessageBoxButtons.YesNo))
{
//点击【否】,返回,取消操作。
return;
}
}
}
else
{
//不存在,在根目录下创建img文件夹
Directory.CreateDirectory(savepath);
}
try
{
Image im = img;
Bitmap bit = new Bitmap(im);
bit.Save(imgSavepath, System.Drawing.Imaging.ImageFormat.Bmp);
MessageBox.Show("图片保存成功!");
}
catch{}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-19
这个是你自己定的啊,别人哪里知道???
你用的那个什么FolderBrowserDialog 控件么?SelectedPath 就是路径

你把我说晕了,你用OpenFIleDialog打开一个文件,然后把文件再存入该文件所在的路径,是这个意思么?

项目下的image文件夹,我们以前的代码都是Application.ExecutablePath+ "\\image"
是在不知道你的这个“项目下”是什么意思啊。

为什么要在程序的路径下呢?Application.StartupPath 不就可以了么?发布程序时就是发布Release文件夹啊。你可以将image文件夹放在这下面,也就是Application.StartupPath + "\\image"。我们的项目都是这样做的。

你说的那个路径我的确是不知道。
第2个回答  2012-04-19
Application.StartupPath + "\\img\\"
第3个回答  2012-04-19
拖一个SaveFileDialog在界面上
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
var fileName = exportFileDialog.FileName;
……
……
}
相似回答