c# 文件操作 txt、xml、ini
1. txt文件
/// <summary>
/// 读文本文件信息
/// </summary>
/// <param name="FilePath"></param>
/// <returns></returns>
public static List<string> ReadTxtFile(string FilePath)
{
List<string> strList = new List<string>(); System.IO.FileStream FS = null;
System.IO.StreamReader SR = null;
if (System.IO.File.Exists(FilePath) )
{
try
{
if (strList == null)
strList = new List<string>(); //using自动释放资源
using (FS = new System.IO.FileStream(FilePath, System.IO.FileMode.Open))
{
SR = new System.IO.StreamReader(FS, System.Text.Encoding.Default);
string Line = null;
System.Drawing.Color color = new System.Drawing.Color();
string[] rgb = new string[]; for (Line = SR.ReadLine(); Line != null; Line = SR.ReadLine())
{
if (!(Line.Trim() == ""))
{
strList.Add(Line);
}
} }
}
catch (Exception ex)
{
throw (ex);
}
finally
{
if (SR != null)
{
SR.Dispose();
SR.Close();
}
if (FS != null)
{
FS.Dispose();
FS.Close();
}
}
}
else
{
strList = null;
}
return strList;
}
读txt文件操作
/// <summary>
/// 保存文本文件信息
/// </summary>
/// <param name="psList">要写入文件的信息</param>
/// <param name="filepath">存放文件的绝对路径</param>
/// <returns></returns>
public static bool SaveToTxtFile(List<string> psList,string filepath)
{
bool bResult = false;
System.IO.FileStream FS = null;
System.IO.StreamWriter SW = null;
try
{
//新建文件流
FS = new System.IO.FileStream(filepath, System.IO.FileMode.Create, System.IO.FileAccess.Write);
//建立文件对应的输入流
SW = new System.IO.StreamWriter(FS); foreach (string ps in psList)
{
SW.Write(ps+"\r\n");
}
bResult = true;
}
catch
{
bResult = false;
}
finally
{
if (SW != null)
{
SW.Close();
}
if (FS != null)
{
FS.Close();
}
}
return bResult;
}
写txt文件操作
2. xml文件
XmlDocument xmldoc = new XmlDocument();//声明一个xml文档操作类的新实例
string path = System.Windows.Forms.Application.StartupPath + @"../../../";
Directory.SetCurrentDirectory(path);
string portpath = Directory.GetCurrentDirectory() + @"\Program\FeedBackSetting.xml";//存放xml文件的绝对路径
xmldoc.Load(portpath);
XmlNode node = xmldoc.SelectSingleNode("FeedBack");//找到xml中的一个节点 node.SelectSingleNode("ThreShold").InnerText = txtThreshold.Text;
node.SelectSingleNode("Sensitivity").InnerText = txtSensitivity.Text;
node.SelectSingleNode("Speed").InnerText = txtSpeed.Text;
xmldoc.Save(portpath);
XML文件读、修改操作
c#代码创建xml文件在看下??
3. ini文件
INI文件就是扩展名为“ini”的文件。在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。该文件主要存放用户所做的选择以及系统的各种参数。用户可以通过修改INI文件,来改变应用程序和系统的很多配置。但自从Windows 95的退出,在Windows系统中引入了注册表的概念,INI文件在Windows系统的地位就开始不断下滑,这是因为注册表的独特优点,使应用程序和系统都把许多参数和初始化信息放进了注册表中。但在某些场合,INI文件还拥有其不可替代的地位。
INI文件的结构
INI文件是一种按照特点方式排列的文本文件。每一个INI文件构成都非常类似,由若干段落(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,等号右边的就是关键字对应的值(value)。其一般形式如下:
[Section1]
KeyWord1 = Valuel
KeyWord2 = Value2
……
[Section2]
KeyWord3 = Value3
KeyWord4 = Value4
注意:ini文件的第一行需要空出,不保留任何信息。(因项目中经常出现因为ini文件的数据顶格而产生的各种问题)
C#和Win32 API函数
C#并不像C++,拥有属于自己的类库。C#使用的类库是.Net框架为所有.Net程序开发提供的一个共有的类库——.Net FrameWork SDK。虽然.Net FrameWork SDK内容十分庞大,功能也非常强大,但还不能面面俱到,至少它并没有提供直接操作INI文件所需要的相关的类。在本文中,C#操作INI文件使用的是Windows系统自带Win32的API函数——WritePrivateProfileString()和GetPrivateProfileString()函数。这二个函数都位于“kernel32.dll”文件中。
我们知道在C#中使用的类库都是托管代码(Managed Code)文件,而Win32的API函数所处的文件,都是非托管代码(Unmanaged Code)文件。这就导致了在C#中不可能直接使用这些非托管代码文件中的函数。好在.Net框架为了保持对下的兼容,也为了充分利用以前的资源,提出了互操作,通过互操作可以实现对Win32的API函数的调用。互操作不仅适用于Win32的API函数,还可以用来访问托管的COM对象。C#中对Win32的API函数的互操作是通过命名空间“System.Runtime.InteropServices”中的“DllImport”特征类来实现的。它的主要作用是指示此属性化方法是作为非托管DLL的输出实现的。下面代码就是在C#利用命名空间“System.Runtime.InteropServices”中的“DllImport”特征类申明上面二个Win32的API函数:
C#申明INI文件的写操作函数WritePrivateProfileString():
[ DllImport ( "kernel32" ) ]
private static extern long WritePrivateProfileString ( string section , string key , string val , string filePath ) ;
参数说明:section:INI文件中的段落;key:INI文件中的关键字;val:INI文件中关键字的数值;filePath:INI文件的完整的路径和名称。
C#申明INI文件的读操作函数GetPrivateProfileString():
[ DllImport ( "kernel32" ) ]
private static extern int GetPrivateProfileString ( string section ,string key , string def , StringBuilder retVal , int size , string filePath ) ;
参数说明:section:INI文件中的段落名称;key:INI文件中的关键字;def:无法读取时候时候的缺省数值;retVal:读取数值;size:数值的大小;filePath:INI文件的完整路径和名称。
using System.Runtime.InteropServices; #region ini文件读写
/*写数据函数参数说明:
* section:INI文件中的段落;
* key:INI文件中的关键字;
* val:INI文件中关键字的数值;
* filePath:INI文件的完整的路径和名称。
*/
[DllImport("kernel32")]
public static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
/*读数据函数参数说明:
section:INI文件中的段落名称;
* key:INI文件中的关键字;
* def:无法读取时候时候的缺省数值;
* retVal:读取数值;
* size:数值的大小;
* filePath:INI文件的完整路径和名称。
*/
[DllImport("kernel32")]
public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
#endregion //获取ini文件
private string GetPortName()
{
string port = "";
string section = "COM";//INI文件中的段落名称
string key = "PortName";
StringBuilder temp = new StringBuilder();
string filepath = Application.StartupPath + @"\Amp.ini";
try
{
Common.GetPrivateProfileString(section, key, "没有找到配置数据!", temp, , filepath);
port = temp.ToString();
if (port == "没有找到配置数据!")
{
port = "";
}
}
catch
{
port = "";
}
return port; } //保存ini文件
private void SaveToAmpIni(string section, string key, string val)
{
string filename = Application.StartupPath + @"\Amp.ini";
Common.WritePrivateProfileString(section, key, val, filename);
}
ini文件读写示例
c# 文件操作 txt、xml、ini的更多相关文章
- python基础——15(加密、excel操作、ini文件操作、xml操作模块及数据格式分类)
一.加密模块 1.有解密的加密方式(base64) #base64加密 import base64 str_encrypt = input("输入要加密的字符串:\n") base ...
- 27、shutil文件操作、xml、subprocess运行子程序模块(了解)
一.shutil模块(了解):高级的文件.文件夹.压缩包处理模块. import shutil # shutil.copyfileobj(fsrc, fdst[, length]),将文件内容拷贝到另 ...
- Day05 (黑客成长日记) 文件操作系列
文件操作: 1.以什么编码方式输出,就以什么编码方式打开 f = open('d:\文件操作.txt',mode='r',encoding='GB2312') G = f.read() print(G ...
- 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!
我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...
- C# - 操作大型XML文件
对于小型XML文件,利用XDocument和XMLDocument可以很方便进行读写(推荐XDocument),但问题是XDocument和XMLDocument是In-Memory类型的,随着文件大 ...
- ini文件操作
Config.ini 文件操作 [SYS] sysname=hy company=hyhy tel=2 using System; using System.Collections.Generic; ...
- matlab文件操作及读txt文件(fopen,fseek,fread,fclose)
文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件.MATLAB提供了一系列低层输入输出函数,专门用于文件操作. 1.文件的打开与关闭 1)打开文件 在读写文件之前,必须先用f ...
- ini 文件操作记要(1): 使用 TIniFile
ini 文件操作记要(1): 使用 TIniFile unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Class ...
- winform INI文件操作辅助类
using System;using System.Runtime.InteropServices;using System.Text; namespace connectCMCC.Utils{ // ...
随机推荐
- [转]ASP.NET Core 1.0: Using Entity Framework Core 1.0 - Transaction
本文转自:http://blog.csdn.net/alvachien/article/details/51576961 跟Entity Framework之前的版本不同,Class DbContex ...
- tomcat中server.xml配置详解(转载)(二)
转载自:https://www.cnblogs.com/starhu/p/5599773.html 一:<Connector>元素 由Connector接口定义.<Connector ...
- 手机端UC浏览器,在java开发的下载功能中存在的问题?
在java web开发中,不同浏览器对下载文件的格式有不同的要求,有时会出现视频,音频等文件无法下载的问题.我在开发中,也遇到类似的问题,觉得很苦恼. 经过百度和请教学习,得到2个解决方案. 首先得到 ...
- C 输入一串数字,去掉当中含7的和能被7整除的数
C 输入一串数字,去掉当中含7的和能被7整除的数,每一个数小于10000,数字个数小于100 输入样例:1,7,56,77,87,2,45,42,97,9977 输出:1,2,45 注意:输入个数不确 ...
- 运用Unity结合PolicyInjection实现拦截器[结合操作日志实例]
上一篇文章我们通过Unity自身Unity.InterceptionExtension.IInterceptionBehavior实现一个有系统关异常日志记录:解决代码中到处充满的异常记录的代码: 本 ...
- vs2005下面编译自己的luars232.dll
vc6在win7下用不了,大家建议使用vs2005...所以就装了,但是还是提示有不兼容,不过是可以用的.先凑合用,装了个2012,庞然大物!而且折腾了半天不知所云.先这样吧. 简单记录操作过程,参考 ...
- Visual studio之C#跨线程调用UI控件
背景 当前串口通讯项目,多个线程需要同时利用richTextBoxMsg控件打印信息,直接调用会造成线程不安全,严重的时候会直接导致UI线程挂掉,因此本篇就跨线程调用UI控件做个记录. 正文 定义控件 ...
- Spring Boot(二)Application events and listeners
一.自定义监听器: 1.创建: META-INF/spring.factories 2.添加: org.springframework.context.ApplicationListener=com. ...
- golang 的编译安装以及supervisord部署
go的编译 go的编译相对很简单,只需要一个命令即可完成,进入项目开发路径,输入 go install <appName> 即可在bin文件夹下生成可执行文件 appName.此文件可直接 ...
- 安卓端OCR文字识别之番外篇
拍照识别------OCR怎样在移动端大放异彩 大家好.我是文通晓伟.非常高兴能和大家共同探讨一下OCR识别技术在安卓端的应用. 首先坦白交代,我不是技术流,我是销售狗. 每天有打不完的电话和做不完的 ...