流
流是串行化设备的抽象表示
- 输出流
向某些外部目标写入数据 - 输入流
用于将数据读到程序可以访问的内存或变量中
用于文件操作的类
File
提供用于创建、复制、删除、移动和打开文件的静态方法并协助创建FileStream对象
Directory
提供用于创建、复制、删除、移动和打开目录的静态方法
Path
对包含文件或目录路径信息的字符串执行操作FileInfo
提供创建、复制、删除、移动和打开文件的实例方法并帮助创建FileSystem对象
DirectoryInfo
提供创建、移动和枚举目录和子目录的实例方法
FileStream
指向文件的流,支持对文件的读写,支持随机访问文件
StreamReader
从流中读取字符数据
StreamWriter
向流中写字符数据FileSystemWatcher
用于监控文件和目录的变化DriveInfo
提供了指定驱动器的信息
File类
常用静态方法
public static void Copy ( string sourceFileName, string destFileName )
将文件从源位置复制到目标位置File.Copy(“c:\\text.txt”, “e:\\test.txt”);
public static FileStream Create ( string path )
创建指定文件并返回一个FileStream对象,如果指定对象存在则覆盖已有对象
FileStream fs=File.Create(“d:\\test.txt”);
fs.Write(…);
……
fs.Close( );
public static StreamWriter CreateText ( string path )
创建指定文件并返回一个StreamWriter对象
string path = @"c:\temp\MyTest.txt";
if (!File.Exists(path)) {
using (StreamWriter sw = File.CreateText(path))
{ sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
}
public static StreamReader OpenText ( string path )
打开指定文件并返回一个StreamReader对象
using (StreamReader sr = File.OpenText(path)) {
string s = "";
while ((s = sr.ReadLine()) != null) {
Console.WriteLine(s);
}
}
public static void Delete ( string path )
删除指定的文件
File.Delete(“d:\\text.txt”);
public static bool Exists ( string path )
判断文件存在与否
if ( File.Exists(“d:\\text.txt”)==true)
{ Console.WriteLine(“The file exists”); }
public static void Move ( string sourceFileName, string destFileName )
将指定文件移到新位置
File.Move(“c:\\text.txt”,”e:\\test.txt”);
public static FileStream Open ( string path, FileMode mode )
FileMode: Append, Create, CreateNew, Open, OpenOrCreate, Truncate
public static FileStream OpenRead ( string path )
Append 打开现有文件并查找到文件尾,或创建新文件。 仅用于写操作
Create 指定操作系统应创建新文件。如果文件已存在,它将被改写。
CreateNew 指定操作系统应创建新文件。如果文件已存在,则将引发 IOException。
Open 指定操作系统应打开现有文件。 若文件不存在则抛出异常
OpenOrCreate 指定操作系统应打开文件(如果文件存在);否则,应创建新文件。
Truncate 指定操作系统应打开现有文件。文件一旦打开,就将被截断为零字节大小。 仅用于写操作。若文件不存在则抛出异常
string path = Path.GetTempFileName();
using ( FileStream fs = File.Open(path, FileMode.Open, FileAccess.Write, FileShare.None) ) {
byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
fs.Write(info, 0, info.Length);
}
using ( FileStream fs = File.Open(path, FileMode.Open) ) {
byte[] b = new byte[1024];
UTF8Encoding temp = new UTF8Encoding(true);
while ( fs.Read(b,0,b.Length) > 0 ) {
Console.WriteLine ( temp.GetString(b) );
}
}
Directory类
常用方法
public static DirectoryInfo CreateDirectory ( string path )
创建目录和子目录
DirectoryInfo di=Directory.CreateDirectory(“c:\\mydir”);
public static void Delete ( string path )
删除目录及其内容
Directory.Delete(“c:\\mydir”);
public static void Move ( string sourceDirName, string destDirName )
移动文件和目录内容
Directory.Move(“c:\\mydir”,”c:\\mynewdir”);
public static bool Exists ( string path )
确定给定的目录字符串是否存在物理上对应的目录
Directory.Exists(“c:\\mydir”);
public static string GetCurrentDirectory ()
获取应用程序的当前工作目录
string currentPath=Directory.GetCurrentDirectory( );
Console.WriteLine(“Current Directory is: “+currentPath);
public static void SetCurrentDirectory ( string path )
将应用程序的当前工作目录设置为指定目录
Directory.SetCurrentDirectory(“c:\\”);
public static DateTime GetCreationTime ( string path )
获取目录创建的日期和时间
DateTime dt=Directory.GetCreationTime(Environment.CurrentDirectory);
public static string[] GetDirectories ( string path )
获取指定目录中子目录的名称
string[] sudirectoryEntries=Directory.GetDirectories(“c:\\mydir”);
public static string[] GetFiles ( string path )
获取指定目录中文件的名称
string[] files=Directory.GetFiles(“c:\\mydir”);
public static string[] GetFileSystemEntries ( string path )
获取指定目录中所有文件和子目录的名称
string[] directoryEntries = System.IO.Directory.GetFileSystemEntries(path);
foreach (string str in directoryEntries)
{ System.Console.WriteLine(str); }
public static string[] GetLogicalDrives ()
获取计算机上格式为“<驱动器号>:\”的逻辑驱动器的名称
string[] drives = System.IO.Directory.GetLogicalDrives();
foreach (string str in drives)
{ System.Console.WriteLine(str); }
FileInfo
FileInfo对象表示磁盘或网络位置上的文件
FileInfo aFile=new FileInfo(@”C:\Log.txt”);
FileInfo aFile=new FileInfo(“Data.txt”);
if (aFile.Exists)
Console.WriteLine(“File Exists”);
if (File.Exists(“Data.txt”))
Console.WriteLine(“File Exists”);
public FileStream OpenRead ()
public FileStream OpenWrite ()
public FileInfo CopyTo ( string destFileName )
public FileStream Create ()
public StreamWriter CreateText ()
public StreamReader OpenText ()
public override void Delete ()
public void MoveTo ( string destFileName )
public FileStream Open ( FileMode mode )
FileSystemInfo的属性
Attributes
使用FileAttributes枚举,获取或设置当前文件或目录的属性
Archive 文件的存档状态
Compressed 文件已压缩
Device 保留供将来使用
Directory 文件为一个目录
Encrypted 文件或目录是加密的
Hidden 文件是隐藏的
Normal 文件正常,没有设置其它属性
NotContentIndexed 操作系统的内容索引服务不会创建此文件的索引
Offline 文件已脱机
ReadOnly 文件为只读
ReparsePoint 文件包含一个重新分析点
System 文件为系统文件
Temporary 文件是临时文件CreationTime
获取当前文件的创建日期和时间Extension
提取文件的扩展名,为只读属性Exists
判断文件是否存在。只读抽象属性FullName
检索文件的完整路径。只读属性LastAccessTime
获取或设置上次访问当前文件的日期和时间LastWriteTime
获取或设置上次写入当前文件的日期和时间Name
获取文件的名称,只读抽象属性
FileInfo的专用属性
Directory
包含当前文件的目录,仅读
DirectoryName
获取目录完整路径,仅读
Console.WriteLine("{0} has a directory Name of {1}", fileName, fileInfo.DirectoryName);
IsReadOnly
指示文件是否为只读
Length
获取文件的容量,以字节为单位,仅读
DirectoryInfo类
常用方法
public void Create ()
创建目录
DirectoryInfo di=new DirectoryInfo(“c:\\mydir”);
di.Create();
public override void Delete ()
删除directoryInfo及其内容
di.Delete();
public void MoveTo ( string destDirName )
将directoryInfo实例及其内容移到新的路径
di.MoveTo(“c:\\Program files”);
public DirectoryInfo CreateSubdirectory ( string path )
创建一个或多个子目录
DirectoryInfo di=di.CreateSubdirectory(“SubDir”);
public DirectoryInfo[] GetDirectories ()
返回当前目录的子目录
DirectoryInfo[] subdirs=di.GetDirectories( );
public FileInfo[] GetFiles ()
返回当前目录的文件列表
FileInfo[] files=di.GetFiles( );
public FileSystemInfo[] GetFileSystemInfos ()
DirectoryInfo dir = new DirectoryInfo(directory);
FileSystemInfo[] infos = dir.GetFileSystemInfos();
DirectoryInfo的专用属性
Parent
表示包含当前目录的目录, 只读属性
Root
表示包含当前目录的根目录,只读属性
Path类
常用方法
public static string ChangeExtension ( string path, string extension )
更改路径字符串的扩展名
string newPath=Path.ChangeExtension(“c:\\test.txt”,”html”);
public static string Combine ( string path1, string path2 )
合并两个路径字符串
string newPath=Path.Combine(“c:\\”,”mydir”);
public static string GetDirectoryName ( string path )
返回指定路径字符串的目录信息
string dir=Path.GetDirectoryName(“c:\\mydir\\test.txt”);
public static string GetExtension ( string path )
返回指定路径字符串的扩展名
string ext=Path.GetExtension(“c:\\mydir\\test.txt”);
public static string GetFileName ( string path )
返回指定路径字符串的文件名和扩展名
string name=Path.GetFileName(“c:\\mydir\\test.txt”);
public static string GetFileNameWithoutExtension ( string path )
返回不带有扩展名的指定路径字符串的文件名
string name=Path.GetFileNameWithoutExtension(“c:\\mydir\\test.txt”);
public static string GetFullPath ( string path )
返回指定路径字符串的绝对路径
string fullPath=Path.GetFullPath(“test.txt”);
public static string GetTempPath ()
返回当前系统的临时文件夹的路径
string tempPath=Path.GetTempPath( );
public static bool HasExtension ( string path )
确定路径是否包括文件扩展名
bool hasExt=HasExtension(“c:\\mydir\\test.txt”);
Stream类的公有方法
public abstract int Read (byte[], int, int )
public virtual int ReadByte ()
public abstract long Seek ( long, SeekOrigin)
public abstract void SetLength ( long )
public abstract void Write ( byte[], int, int )
public virtual void WriteByte ( byte)
版权声明
本文章由作者“衡于墨”创作,转载请注明出处,未经允许禁止用于商业用途
评论区#
还没有评论哦,期待您的评论!
引用发言