C#中File类总结
来源:互联网 发布:oracle数据库alter 编辑:程序博客网 时间:2024/05/19 09:39
使用File类操作文件
方法
说明
Copy
将现有文件复制到新文件
Create
在指定路径中创建文件
Delete
删除指定的文件,如果指定的文件不存在,则不引发异常
Exists
确定文件是否存在
Move
将指定文件移动到新位置,并提供指定新文件名的选项。
Open
打开指定路径上的FileStream
应用实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //记得添加对System.IO的引用。
namespace 文件类的应用
{
class Program
{
static void Main(string[] args)
{
string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.txt";
File.Create(m_path); //文件类的静态方法,创建文件
if (File.Exists(m_path)) //验证文件是否存在的方法,返回布尔值。
{
Console.WriteLine("文件存在");
}
else Console.WriteLine("文件创建失败");
}
}
}
使用Directory类操作文件
方法
说明
CreateDirectory
创建指定路径中的所有目录
Delete
删除指定的目录
Exists
确定指定路径是否引用磁盘上的现有目录(即是否存在)
GetCurrentDirectory
获取应用程序的当前工作目录
GetDirectories
获取指定目录中的子目录名称
GetFiles
返回指定目录中文件的名称
GetLogicalDrives
检索此计算机上格式为“<驱动器号>:/”的逻辑驱动器的名称
GetParent
检测指定路径的父目录,包括绝对路径和相对路径
Move
将文件或目录及其内容移动到新位置
应用实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //记得添加对System.IO的引用。
namespace 文件类的应用
{
class Program
{
static void Main(string[] args)
{
string m_path = @"C:/Documents and Settings/张健和/桌面/Roy";
Directory.CreateDirectory(m_path); //Directory.CreateDirectory的应用
if (Directory.Exists(m_path))
{
Console.WriteLine("文件夹生成成功");
}
else Console.WriteLine("文件夹创建失败");
Console.ReadLine();
Directory.Delete(m_path); //Directory.Delete的应用
if (Directory.Exists(m_path))
{
Console.WriteLine("文件夹删除失败");
}
else Console.WriteLine("文件夹删除成功");
Console.ReadLine();
string m_path2=Directory.GetCurrentDirectory();
Console.WriteLine("当前应用程序的目录为:"+m_path2);
Console.ReadLine();
string []m_path3=new string[100];
m_path3 = Directory.GetFiles(m_path2); //Directory.GetFiles的应用
foreach (string i in m_path3)
{
Console.WriteLine("当前应用程序的目录中的子文件为:" + i);
}
Console.ReadLine();
}
}
}
使用FileInfo类操作文件
文件信息类FileInfo与File类不同。它虽然也提供创建,复制,删除,移动和打开文件的方法,并且帮助创建FileStream对象,但是它提供的仅仅是实例方法。因此要使用FileInfo类,必须先实例化一个FileInfo对象。
方法
说明
Attributes
获取或设置当前FileSystemInfo的FileAttributes
CreationTime
获取或设置当前FileSystemInfo对象的创建时间
Directory
获取父目录的实例
DirectoryName
获取表示目录的完整路径的字符串
Exists
获取指示文件是否存在的值
Extension
获取表示文件扩展名部分的字符串
FullName
获取目录或文件的完整目录
IsReadOnly
获取或设置当前文件是否为只读的值
Length
获取当前文件的大小
Name
获取文件名
应用实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //记得添加对System.IO的引用。
namespace 文件类的应用
{
class Program
{
static void Main(string[] args)
{
string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.txt";
if (!File.Exists(m_path))
{
File.Create(m_path);
}
FileInfo useFileInfo = new FileInfo(m_path);
string a = useFileInfo.Attributes.ToString();
string t = useFileInfo.CreationTime.ToString();
Console.WriteLine("文件的属性是:"+a+"/n创建时间是:"+t); //那个文件属性自己查下英语词典。。
Console.ReadLine();
string d = useFileInfo.Directory.ToString();
string dn = useFileInfo.DirectoryName.ToString();
string ex=useFileInfo.Extension.ToString();
string name = useFileInfo.Name.ToString();
Console.WriteLine("父目录是:" + d + "/n目录完整路径是:" + dn+"/n扩展名是:"+ex+"/n文件名是:"+name);
Console.ReadLine();
}
}
}
使用DirectoryInfo类操作文件夹
方法
说明
Attributes
获取或设置当前FileSystemInfo的FileAttributes
CreationTime
获取或设置当前FileSystemInfo对象的创建时间
Exists
获取指示目录是否存在的值
Extension
获取表示文件扩展名部分的字符串
Name
获取此DirectoryInfo实例的名称
Parent
获取指定子目录的父目录
Root
获取路径的根部分
应用实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //记得添加对System.IO的引用。
namespace 文件类的应用
{
class Program
{
static void Main(string[] args)
{
string m_path = @"C:/Documents and Settings/张健和/桌面/Roy";
DirectoryInfo useDirectoryInfo = new DirectoryInfo(m_path); //用DirectoryInfo时记得要新建实例
if (useDirectoryInfo.Exists) //与Directory类不同,这里Exists不是方法
{
Console.WriteLine("文件夹存在");
}
else
{
Console.WriteLine("文件夹不存在,系统自动新建文件夹");
Directory.CreateDirectory(m_path);
}
string a = useDirectoryInfo.Attributes.ToString(); //文件夹类型
string ct = useDirectoryInfo.CreationTime.ToString(); //创建时间
string name = useDirectoryInfo.Name.ToString(); //文件名称
string P=useDirectoryInfo.Parent.ToString(); //文件的父目录
string R = useDirectoryInfo.Root.ToString(); //文件夹的根目录
Console.WriteLine(
"文件夹类型是:" + a
+ "/n创建时间是:" + ct
+ "/n文件夹名称是:" + name
+ "/n文件的父目录是:" + P
+ "/n文件夹的根目录是:" + R);
Console.ReadLine();
}
}
}
使用FileStream类读取和写入文件
FileStream类的构造函数简介
构造函数
说明
FileStream(String.FileMode)
使用指定的路径和创建模式初始化FileStream类的新实例
FileStream(String.FileMode,FileAccess)
使用指定的路径、创建模式和读/写权限初始化FileStream类的新实例
FileMode枚举成员简介
成员
说明
Append
打开现有文件并查找到文件尾,或创建新文件。FileMode.Append只能同FileAccess一起使用,任何读尝试都会失败并引发<ArgumentException>
Create
指定操作系统应创建文件。如果文件存在,它将被改写。这要求<FileIOPermissionAccess.Write>,System.IO.FileMode.Create等效于这样的请求:如果文件不存在,则使用<CreateNew>;否则使用<Truncate>。
CreateNew
指定操作系统应创建文件。此操作需要FileIOPermissionAccess.Write。如果文件已经存在,则将引发IOException
Open
指定操作系统应打开现有文件。打开文件的能力取决于FileAccess所指定的值。如果该文件不存在,则引发System.IO.FileNotFoundException。
OpenOrCreate
如果文件存在,指定操作系统应打开文件,否则应创建文件。如果用FileAccess.Read打开文件,则需要<FileIOPermissionAccess.Read>。如果文件访问为FileAccess.Write或FileAccess.ReadWrite,则需要FileIOPermissionAccess.Write。如果文件访问为FileAccess.Append,则需要<FileIOPermissionAccess.Append>。
Truncate
指定操作系统应打开现有文件。文件一旦打开,就将被截断为零字节大小。此操作需要FileIOPermissionAccess.Write。试图从使用Truncate打开的文件中进行读取将导致异常。
(由于本人不太推荐用FileStream类进行文件操作,因为比较影响效率,所以以下的应用实例不是太全面)
应用实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //记得添加对System.IO的引用。
namespace 文件类的应用
{
class Program
{
static void Main(string[] args)
{byte[] m_bDateWrite = new byte[100];
char[] m_cDateWrite = new char[100];
string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.txt";
try
{
//创建c:/的FileStream对象
FileStream m_FileStream = new FileStream(m_path, FileMode.OpenOrCreate, FileAccess.ReadWrite);
m_cDateWrite = "My First File Operation".ToCharArray(); //将要写入的字符串转换成字符数组
//通过UTF-8编码方法将字符数组转换成字节数组(自己百度一下什么是UTF-8)
Encoder m_Enc = Encoding.UTF8.GetEncoder();//?
m_Enc.GetBytes(m_cDateWrite, 0, m_cDateWrite.Length, m_bDateWrite, 0, true);
m_FileStream.Seek(0, SeekOrigin.Begin); //设置流的当前位置为文件开始位置
m_FileStream.Write(m_bDateWrite, 0, m_bDateWrite.Length); //写入文件
}
catch (System.Exception ex)
{
Console.WriteLine("there is an ioException");
Console.WriteLine(ex.Message); //异常信息
Console.ReadLine(); return;
}
Console.WriteLine("write to File Succeed!");
Console.ReadLine();
return;
}
}
}
使用StreamWriter类写入文件
构造函数
说明
StreamWriter(Stream)
用UTF-8编码及默认缓冲区大小,为指定的流初始化StreamWriter类的一个新实例
StreamWriter(String)
使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter类的新实例
StreamWriter(String,Boolean)
使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter类的新实例。如果文件存在,则可以将其必定或向其追加。如果不存在,则此构造函数将创建一个新文件
StreamWriter方法
方法
说明
Close
关闭当前的StreamWriter对象和基础流
Write
写入流
WriteLine
写入重载参数指定的某些数据,后跟行结束符
应用实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //记得添加对System.IO的引用。
namespace 文件类的应用
{
class Program
{
static void Main(string[] args)
{try
{
string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.txt";
//保留文件现有数据,以追加写入的方式打开文件
StreamWriter sw = new StreamWriter(m_path, true);
sw.WriteLine("Another File Operation Method");
sw.Close();
}
catch (System.Exception e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
return;
}
Console.WriteLine("Write to File Succeed!");
Console.ReadLine();
return;
}
}
}
使用StreamReader类读取文件
构造函数
说明
StreamReader(Stream)
为指定的流初始化StreamReader类的新实例
StreamReader(String)
为指定的文件名初始化StreamReader类的新实例
StreamReader方法
方法
说明
Close
关闭StreamReader对象和基础流,并释放与读取器关联的所有资源
Read
读取输入流中的下一个字符或下一个组字符
ReadLine
从当前流中读取一行字符并将数据作为字符串返回
ReadToEnd
从流当前位置到末尾读取流
使用方法和StreamWriter差不多,大家可以尝试尝试自己写一个DEMO。
使用BinaryWriter类进行二进制写入
构造函数
说明
BinaryWriter()
初始化向流中写入BinaryWriter类的实例
BinaryWriter(Stream)
基于所提供的流,用UTF-8作为字符串编码来初始化BinaryWriter类的新实例
BinaryWriter(Stream,Encoding)
基于所提供的流和特定的字符编码,初始化BinaryWriter类的新实例
BinaryWriter方法
方法
说明
Close
关闭当前的BinaryWriter对象和基础流
Write
将值写入当前流
使用BinaryReader类进行二进制读取
构造函数
说明
BinaryReader(Stream)
基于所提供的流,用UTF-8 Encoding初始化BinaryReader类的新实例
BinaryReader(Stream,Encoding)
基于所提供的流和特定的字符编码,初始化BinaryReader类的新实例
BinaryReader方法
方法
说明
Close
关闭当前阅读器及基础流
Read
从基础流中读取字符,并提升流的当前位置
BinaryWriter和BinaryReader的应用实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; //记得添加对System.IO的引用。
namespace 文件类的应用
{
class Program
{
static void Main(string[] args)
{string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.dat";
FileStream FS = new FileStream(m_path, FileMode.OpenOrCreate);
BinaryWriter BW = new BinaryWriter(FS); //通过文件流创建相应的二进制写入器
for (int i = 0; i < 11;i++ )
{
BW.Write(i);
}
BW.Close(); //先关闭
FS.Close();
Console.WriteLine("写入成功!");
Console.ReadLine();
FileStream FS1 = new FileStream(m_path, FileMode.Open, FileAccess.Read);
BinaryReader BR = new BinaryReader(FS1);
for (int i = 0; i < 11;i++ )
{
Console.WriteLine(BR.ReadInt32());
}
BR.Close();
FS.Close();
Console.ReadLine();
}
}
}
- C#中File类总结
- C#中Path类、File类、Directory类总结
- Java中File类总结
- java中File类总结
- C#中File 类的用法 转载
- C#中File类常用方法
- C#中File类的文件操作方法
- Java中 File类知识总结
- java中File类常用API总结
- c#中FileInfo类和File类的区别
- c#中FileInfo类和File类的区别
- C#中File FileInfo 和Directory DirectoryInfo 类的区别
- C#中File类的文件操作方法详解
- C#中File类的文件操作方法详解
- C#中File类的文件操作方法详解
- C#中File类的文件操作方法详解
- java中File方法总结
- c# File类
- 【hdu4941】hash解决大行列交换问题~
- bnuoj 36905 Nested Segments
- ubuntu无线网卡驱动问题解决方法
- 基于SDL的SDL_mixer音乐播放器
- uva--10673
- C#中File类总结
- Tomacat与J2EE版本问题
- HDU 4939
- SVG编程经典教程(转)
- 采用池化的思想替换StringBuffer的使用
- CVPR 2013 录用论文(目标跟踪部分)
- [VC] BMP文件格式
- effective java (13-15)
- How to Start a New Cocos2d-x Game