一、文件是否存在
c#中操作IO非常简单,下面介绍如何判断文件夹或文件是否存在的方法。 代码如下:
//判断文件夹是否存在,不存在则创建文件夹
if (!System.IO.Directory.Exists(@"E:\Files"))
{
System.IO.Directory.CreateDirectory(@"E:\Files");//不存在就创建文件夹 }
//判断某文件是否存在
需要引用命名空间using System.IO;
if(File.Exists(@"E:\Files\test.txt"))
{
//存在
}
else
{
//不存在
}
二、文件读写
文件写
class WriteTextFile
{
static void Main()
{
//如果文件不存在,则创建;存在则覆盖
//该方法写入字符数组换行显示
string[] lines = { "first line", "second line", "third line","第四行" };
System.IO.File.WriteAllLines(@"C:\testDir\test.txt", lines, Encoding.UTF8);
//如果文件不存在,则创建;存在则覆盖
string strTest = "该例子测试一个字符串写入文本文件。";
System.IO.File.WriteAllText(@"C:\testDir\test1.txt", strTest, Encoding.UTF8);
//在将文本写入文件前,处理文本行
//StreamWriter一个参数默认覆盖
//StreamWriter第二个参数为false覆盖现有文件,为true则把文本追加到文件末尾
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\testDir\test2.txt",true))
{
foreach (string line in lines)
{
if (!line.Contains("second"))
{
file.Write(line);//直接追加文件末尾,不换行
file.WriteLine(line);// 直接追加文件末尾,换行
}
}
}
}
}
文件读
class ReadTextFile
{
static void Main()
{
//直接读取出字符串
string text = System.IO.File.ReadAllText(@"C:\testDir\test1.txt");
Console.WriteLine(text);
//按行读取为字符串数组
string[] lines = System.IO.File.ReadAllLines(@"C:\testDir\test.txt");
foreach (string line in lines)
{
Console.WriteLine(line);
}
//从头到尾以流的方式读出文本文件
//该方法会一行一行读出文本
using (System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\testDir\test.txt"))
{
string str;
while ((str = sr.ReadLine()) != null)
{
Console.WriteLine(str);
}
}
Console.Read();
}
}
三、读取内容string转int等
例
string[] linesRead = File.ReadAllLines(@strConfigPath);
Convert.ToInt32(linesRead[0]);
to其他格式的可以转别的数据类型
四、System.IO.IOException
msdn阐述:如果发生 I/O 错误(如读写文件失败),则会引发 IOException。
目前遇到的问题,以上读写方法有的貌似不会自动关闭文件流,手动打开读写用的测试文件后,会出现该异常
如何处理留待更新