文件操作相关类知识
File //操作文件,静态类,对文件整体操作。拷贝、删除、剪切等。
Directory //操作目录(文件夹),静态类。
DirectoryInfo //文件夹的一个“类”,用来描述一个文件夹对象(获取指定目录下的所有目录时返回一个DirectoryInfo数组。)
FileInfo//文件类,用来描述一个文件对象。获取指定目录下的所有文件时,返回一个FileInfo数组。
Path//对文件或目录的路径进行操作(很方便)【字符串】
Stream//文件流,抽象类。
FileStream//文件流,MemoryStream(内存流),NetworkStream(网络流)
StreamReader //快速读取文本文件
StreamWriter//快速写入文本文件
Path类
目录和文件操作的命名控件System.IO
string ChangeExtension(string path, string extension)
修改文件的后缀,“修改”支持字符串层面的,没有真的给文件改名
string s = Path.ChangeExtension(@"C:\temp\F3.png", "jpg")
string Combine(string path1, string path2)
将两个路径合成一个路径,比用+好,可以方便解决不加斜线的问题,自动处理路径分隔符的问题
string s = Path.Combine(@"c:\temp","a.jpg")
string GetDirectoryName(string path)
得到文件的路径名。Path.GetDirectoryName(@"c:\temp\a.jpg")
string GetExtension(string path) 得到文件的扩展名
string GetFileName(string path) 得到文件路径的文件名部分
string GetFileNameWithoutExtension(string path) 得到去除扩展名的文件名
string GetFullPath(string path) 得到文件的全路径。可以根据相对路径获得绝对路径。
string GetTempFileName() 得到一个唯一的临时文件名
string GetTempPath() 得到临时文件夹的路径
Path.Combine(path1,path2),见MSDN
如果指定的路径之一是零长度字符串,则该方法返回其他路径。如果 path2 包含绝对路径,则该方法返回 path2。
如果path1不是以分隔符结束,并且不是c:或d:等(驱动器引用),则在串联前为path1增加\分隔符。
分隔符:(与操作系统平台有关)
Path.DirectorySeparatorChar → \
Path.PathSeparator → ;
Path.VolumeSeparatorChar → :
Path.GetFileName()
获取文件名
当目录为c:\windows\test时,可获取最后一个目录名,但当目录路径为c:\windows\test\ 时,不可以。reflector查看
获取当前exe文件执行的路径:
Assembly.GetExecutingAssembly().Location;
Application.StartupPath.
不要用:
Directory.GetCurrentDirectory();获取应用程序的当前工作目录。因为这个可能会变,通过使用OpenFileDialog或者手动设置Directory.SetCurrentDirectory()
Directory和DirectoryInfo
void Delete(string path, bool recursive) 删除目录, recursive表示是否递归删除,如果recursive为false则只能删除空目录
bool Exists(string path) 判断目录是否存在
string[] GetDirectories(string path) 得到一个目录下的子目录
string[] GetDirectories(string path, string searchPattern, SearchOption searchOption) 通配符查找目录下的子目录,可以搜索到隐藏文件。
static string[] GetFiles(string path) 得到一个目录下的文件
string[] GetFiles(string path, string searchPattern, SearchOption searchOption) 通配符查找目录下的文件
DirectoryInfo GetParent(string path) 得到目录的父目录
move() //移动、剪切。只能在同一个磁盘中。目录没有Copy方法。可以使用Move()方法实现重命名。
create()