C#文件操作

原创
小哥 2年前 (2023-05-24) 阅读数 10 #大杂烩

转自: http://www.cnblogs.com/qinfei/archive/2005/11/03/268229.html

另一篇更全面的文章: http://space.itpub.net/23109131/viewspace-662112

文件操作: 检查 创建 读取 写入 修改 删除
目录操作: 检查 创建 读取 写入 修改 删除


文件操作

执行此操作...

请参考本主题中的示例...

创建文本文件

将文本写入文件

写入文本文件

将文本写入文件

读取文本文件

从文件中读取文本

将文本追加到文件

File.AppendText FileInfo.AppendText

重命名或移动文件

File.Move FileInfo.MoveTo

删除文件

File.Delete FileInfo.Delete

复制文件

File.Copy FileInfo.CopyTo

获取文件大小

FileInfo.Length

获取文件属性

File.GetAttributes

设置文件属性

File.SetAttributes

确定文件是否存在

File.Exists

读取二进制文件

读取和写入新创建的数据文件

写入二进制文件

读取和写入新创建的数据文件

检索文件扩展名

Path.GetExtension

检索文件的完全限定路径

Path.GetFullPath

检索路径中的文件名和扩展名

Path.GetFileName

更改文件扩展名

Path.ChangeExtension

目录操作

System.IO 类

目录操作
string[] drives = Directory.GetLogicalDrives(); //本地驱动器的名称,如:C:\等
string path = Directory.GetCurrentDirectory(); //获取应用程序的当前工作目录
Path.GetFileName(@"c:\dir\file.txt"); //获取子目录的名称,result的结果是file.txt
Directory.GetFiles(路径和文件名) //获取指定目录中的文件名(文件列表)
DirectoryInfo di = new DirectoryInfo(@"f:\MyDir"); //构造函数创建目录
DirectoryInfo di=Directory.CreateDirectory(@"f:\bbs"); //创建对象和创建目录
if (di.Exists == false) //检查此目录是否存在
di.Create(); //创建目录
DirectoryInfo dis = di.CreateSubdirectory("SubDir"); //创建具有相对路径的子目录
dis.Delete(true); //删除新创建的子目录
di.Delete(true); //删除创建目录

文件操作
Directory.Delete(@"f:\bbs2", true); //删除目录及其子目录和内容(如果为 false,则无法删除包含内容的目录(包括子目录))
Directory.GetDirectories 方法 //获取指定目录中子目录的名称
string[] dirs = Directory.GetDirectories(@"f:\", "b*");
Console.WriteLine("在此目录中b起始子目录包括{0}个!", dirs.Length);
foreach (string dir in dirs) { Console.WriteLine(dir); }
Directory.GetFileSystemEntries //获取指定目录中的目录和文件名
Directory.GetLogicalDrives //检索此计算机上的格式为”<驱动器号>:\“逻辑驱动器的名称,[语法同上]
Directory.GetParent //用于检索父目录的路径。
DirectoryInfo a = Directory.GetParent(path);
Console.WriteLine(a.FullName);Directory.Move //移动目录及其中的所有文件
Directory.Move(@"f:\bbs\1", @"f:\bbs\2"); //将文件夹1将里面的文件剪切到一个文件夹中2内 文件夹2它刚刚创建

Stream // 对字节的读取和写入操作(包括对异步操作的支持) Reading Writing Seeking

BinaryReader和BinaryWriter // 从字符串或原始数据到各种流的读取和写入操作

FileStream类通过Seek()随机访问文件的方法,默认为同步

TextReader和TextWriter //用于gb2312字符输入和输出

StringReader和StringWriter //读取和写入字符串中的字符

StreamReader和StreamWriter //读取和写入流中的字符

BufferedStream 一种向其他流(如网络流)添加缓冲的流.

MemoryStream 未缓冲的流

NetworkStream 互联网上的流

//编码转换
Encoding e1 = Encoding.Default; //获取此页面的默认代码
Byte[] bytes = e1.GetBytes("中国人民解放军"); //转换为二进制
string str = Encoding.GetEncoding("UTF-8").GetString(bytes); //转回UTF-8编码


//文本文件操作:创建/读取/拷贝/删除
using System;
using System.IO;
class Test
{
string path = @ "f:\t.txt" ;
public static void Main()
{
//创建和写入(覆盖现有文件)
if (!File.Exists(path))
{
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine("Hello");
}
}
//读取文件
using (StreamReader sr = File.OpenText(path))
{
string s = "";
while ((s = sr.ReadLine()) != null )
{
Console.WriteLine(s);
}
}
//删除/拷贝
try
{
File.Delete(path);
File.Copy(path, @"f:\tt.txt");
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}

//流文件操作
private const string name = "Test.data";
public static void Main(String[] args)
{
//打开文件()  ,或通过File创建一个类似这样的展台:fs = File.Create(path, 1024)
FileStream fs = new FileStream(name, FileMode.CreateNew);
//转换为字节 写入数据(可以用中文书写)
Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
//字节数组,字节偏移量,写入的最大字节数
fs.Write(info, 0, info.Length);
w.Close();
fs.Close();
//打开文件
fs = new FileStream(name, FileMode.Open, FileAccess.Read);
//读取
BinaryReader r = new BinaryReader(fs);
for (int i = 0; i < 11; i++)
{
Console.WriteLine(r.ReadInt32());
}
w.Close();
fs.Close();
}

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除