c# winform 我需要用户设置的图片保存路径 保存到ini 或者是xml中

路径由 folderBrowserDialog 获取,然后存到里面,用的时候在读取,我想知道写入、读取详细的实现办法?

实际上有更简单的办法:微软vs提供了专门的配置文件。个人认为用这个更好,可以为空间设置绑定存取更方便。
添加->新建项->设置文件(后缀.setting【多专业^.^】)
打开后会有四个属性【名称、类型、范围、值】在第一行写上
SavePath、string、用户、C:\默认路径
OK。下面是调用和保存的代码:相当简单
FolderBrowserDialog fbd = new FolderBrowserDialog();
private void Form1_Load(object sender, EventArgs e)
{//读取,Settings1是配置文件名,被自动定义成一个类
textBox1.Text = Settings1.Default["SavePath"].ToString();
fbd.SelectedPath = textBox1.Text;
}

private void button1_Click(object sender, EventArgs e)
{//保存
if (DialogResult.OK == fbd.ShowDialog()) {
Settings1.Default["SavePath"] = fbd.SelectedPath;
Settings1.Default.Save();//****************很重要哦
//需要注意的是,修改后在Settings1文件中看不见变化,不过没关系,他确实已经变了,不行在运行下看看
textBox1.Text = Settings1.Default["SavePath"].ToString();
}
}

这个要比xml方法简单了
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-16
引用命名空间using System.Xml;
folderBrowserDialog指定路径代码:在一个按钮单击事件中:
folderBrowserDialog1.ShowDialog();
textBox1.Text=folderBrowserDialog1.SelectedPath;
//存储
XmlDocument xml = new XmlDocument();
//创建根节点
XmlElement root= xml.CreateElement("root");
xml.AppendChild(root);
//创建filepath节点
XmlElement filepath = xml.CreateElement("filepath");
filepath.InnerText = textBox1.Text;
root.AppendChild(filepath);
xml.Save("路径.xml");
//在另一个事件中读取
XmlDocument xml = new XmlDocument();
xml.Load("路径.xml");
XmlNodeList list = xml.SelectSingleNode("root").ChildNodes;
//取出存储的路径
MessageBox.Show(list[0].InnerText);追问

如果我还要存多个例如 视频路径、音乐路径等到 同一个xml里 该怎么实现

追答

如果你要存多个的话,最好是吧视频啊、音乐啊分成组比如:
XmlDocument xml = new XmlDocument();
//创建根节点
XmlElement root= xml.CreateElement("root");
xml.AppendChild(root);
//创建一个组集合
XmlElement zu = xml.CreateElement("zu");
XmlElement filepath = xml.CreateElement("filepath");
filepath.InnerText = textBox1.Text;
//注意这里,由于你的filepath放到zu里了,所以他是zu的AppendChild
zu.AppendChild(filepath);
XmlElement museicpath = xml.CreateElement("musicpath");
musicpath.InnerText = textBox1.Text;
//music也是如此,视频的话也相同就不写了
zu.AppendChild(fmusicpath);
//最后zu是根节点的AppendChild
root..AppendChild(zu);
xml.Save("路径.xml");
关键要看你的xml要保存什么样的格式

本回答被提问者采纳
第2个回答  2011-03-16
这个是我的程序中的一个类,你参考一下
/// <summary>
/// 配置文件辅助类,负责读取和写入INI配置文件的相关信息
/// </summary>
public class ConfigHelper
{
//声明即将调用的非托管函数(这两个函数负责INI文件的读取和写入)
[DllImport("Kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("Kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal,
int size, string filePath);

/// <summary>
/// 获取配置文件中的SQL Server服务器名
/// </summary>
/// <returns></returns>
public static string GetSqlServerNameFromConfig()
{
string name = "";
StringBuilder temp = new StringBuilder();
try
{
string path = System.Windows.Forms.Application.StartupPath.ToString() + @"\Config.ini";
GetPrivateProfileString("SQL Server 2005 Settings", "server", "", temp, 255, path);
name = temp.ToString();
}
catch (Exception ex)
{
MessageBox.Show("获取SQL Server服务器名失败:" + ex.Message);
}
return name;
}

/// <summary>
/// 获取配置文件的SQL Server用户名
/// </summary>
/// <returns></returns>
public static string GetUserNameFromConfig()
{
string uid = string.Empty;
StringBuilder temp = new StringBuilder();
try
{
string path = Application.StartupPath.ToString() + @"\Config.ini";
GetPrivateProfileString("SQL Server 2005 Settings", "uid", "", temp, 255, path);
uid = temp.ToString();
}
catch (Exception ex)
{
MessageBox.Show("发生错误,获取SQL Server用户名失败:" + ex.Message);
}
return uid;
}

/// <summary>
/// 获取配置文件的SQL Server登录密码
/// </summary>
/// <returns></returns>
public static string GetPasswordFromConfig()
{
string pwd = "";
StringBuilder temp = new StringBuilder();
{
try
{
string path = System.Windows.Forms.Application.StartupPath.ToString() + @"\Config.ini";
GetPrivateProfileString("SQL Server 2005 Settings", "pwd", "", temp, 255, path);
pwd = temp.ToString();
}
catch (Exception ex)
{
MessageBox.Show("发生错误,获取SQL Server登录密码失败:" + ex.Message);
}
}
return pwd;
}

/// <summary>
/// 向配置文件中写入服务器名
/// </summary>
/// <param name="name"></param>
public static void WriteSqlServerNameInConfig(string name)
{
try
{
WritePrivateProfileString("SQL Server 2005 Settings", "server", name, Application.StartupPath.ToString() + @"\Config.ini");
}
catch (Exception ex)
{
MessageBox.Show("发生错误:" + ex.Message);
}
}

/// <summary>
/// 向配置文件中写入登录名
/// </summary>
/// <param name="name"></param>
public static void WriteUserNameInConfig(string name)
{
try
{
WritePrivateProfileString("SQL Server 2005 Settings", "uid", name, Application.StartupPath.ToString() + @"\Config.ini");
}
catch (Exception ex)
{
MessageBox.Show("发生错误:" + ex.Message);
}
}

/// <summary>
/// 向配置文件中写入登录密码
/// </summary>
/// <param name="name"></param>
public static void WritePasswordInConfig(string name)
{
try
{
WritePrivateProfileString("SQL Server 2005 Settings", "pwd", name, Application.StartupPath.ToString() + @"\Config.ini");
}
catch (Exception ex)
{
MessageBox.Show("发生错误:" + ex.Message);
}
}
}

C# winform 的配置文件用什么保存好,txt,ini.还是xml.
都可以,看你自己选择了 txt需要自定义格式 xml可以用XmlDocument操作 ini要通过DllImport("kernel32")来引入外部函数操作

有谁知道c#窗体应用如何保存当前用户的设置
首先,可以考虑自定义配置文件,例如,在BIN目录下创建一个名为setting.config的文件,通过WinForm界面,将所有配置参数保存至其中。其次,选择将部分配置参数保存到app.config文件中。当窗体进行编译时,app.config会自动生成至BIN目录,方便管理和访问。再者,考虑将设置信息保存至数据库的特定表内,例如D_D...

C# 如何保存对Winform界面所做的修改,Winform界面已通过运行修改,希望...
可以在工程Debug文件下面新建一个配置文件,ini或者xml都可以。然后把现在的修改,也就是你下次运行时候需要的参数值写进去,下次运行的时候直接读取就可以了。

C# winform 如何实现在计算机指定路径保存和调取文件
\/\/引用 system.io string path = "e:\/\/测试.txt";\/\/这是路径 private void btnWrite_Click(object sender, EventArgs e) { if (txtWrite.Text != "") { using (FileStream fs = File.Open(path, FileMode.Create, FileAccess.Write)) { using (StreamWriter sw ...

C# winform 如何存储用户选择的文件路径 下次启动时读取该路径
string path = "";\/\/存Application.UserAppDataRegistry.SetValue("path", path); \/\/读string s = Application.UserAppDataRegistry.GetValue("path") as string;

c# 保存图片文件 winform
string Address =保存路径+图片名称;byte[] bt = new byte[1024]; \/\/图片二进制流 if (!Directory.Exists(Address)){ Directory.CreateDirectory(Address);} using (FileStream fs = new FileStream(ImgName, FileMode.OpenOrCreate, FileAccess.Write)){ fs.Write(bt, 0, bt.Length);fs.Flu...

c# 怎么解决winform下保存picture box的图片防止GDI+一般错误
文件已经被占用 无法覆写 Bitmap对象属于非托管的GDI+对象 它会强烈的关联文件句柄 如果要对图像进行转存操作 建议使用Image.Save(Stream, ImageFormat)这个重载 先保存到内存流或者临时文件中,然后执行Bitmap.Dispose() 把原来图像资源释放 最后再把刚才的临时文件或者临时内存 覆写回文件 ...

C#winform中从本地加载图片
若要想用控件的形式来用,可以自己设计一个控件,在上面放一个Picture,两个Button,当然若想实现选择图片文件夹话还要加一个选择的button,另外,还要把图片的位置保存到一个变量中,如哈希表,list等 ,通过变量中的路径来实现图片的访问.只能看上去是翻页的效果,实际上还是一次次的读取 ...

c# 代码在Winform窗体中如何实现记住用户名和密码
给你说2个简答的思路吧。1用ini文件,把你输入的用户名保存的ini文件里,下次打开窗体时读取ini里的值,给了txt。2同理 ,把值保存到xml文件里。

C#的winForm程序中,如何点击添加按钮实现图片上传到服务器文件夹内,求...
那只能考虑把文件解析为二进制文件,保存到服务器。如此还要考虑文件大小的分包问题。

相似回答