我在最近的一个C#桌面项目中,需要操作ini文件来保存配置信息。软件启动时,检测sys.ini文件是否存在,如果存在,读取配置信息;如果不存在,创建,写入默认参数。相关代码如下:
[DllImport(“kernel32”)]
private static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
[DllImport(“kernel32”)]
private static extern int WritePrivateProfileString(string lpApplicationName, string lpKeyName, string lpString, string lpFileName);
string filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, “sys.ini”);//在当前程序路径创建
if (!File.Exists(filePath))
{
File.Create(filePath);
}
WritePrivateProfileString(section, key, value, filePath);
执行完毕后,发现文件未写入任何内容,文件大小为0;后来发现,问题出在File.Create(filePath);这一行。
File.Create()函数返回一个FileStream对象,该对象已经打开对应文件,其它对象要改写文件,被拒绝了。
所以,应该写成File.Create(filePath).Close();
暂无评论内容