操作文件常用的类有:
File------实用类,提供许多静态方法,用于移动、删除、和复制文件。
Directory------实用类,提供许多静态方法,用于移动、删除和复制目录。
Path------ 实用类,用于处理路徑名称。
FileInfo------表示磁盘上的物理文件,具有可以处理此文件的方法,要完成对文件的读写工作,就必须创建Stream对像。
DirectoryInfo------表示磁盘上的物理目录,具有可以处理此目录的方法
下面對這些類分別作介紹:
1.File和Directory类
作为实用类,File和Directory类都提供了许多方法,用于处理文件系统以及其中的文件和目录。这些是静态方法,涉及移动文件、查询和更新属性并创建FileStream对象。
File类一些最常用的静态方法:
Copy()------将文件复制到规定的位置
Create()------在规定的位置上创建文件
Delete()------删除文件
Open()-------在规定的路徑上返回FileStream对像
Move()------将规定的文件移动到新位置,可以在新位置给文件规定不同的名字
Directory类的一些常用的静态方法
CreateDirectory()------创建具有规定路徑的目录
Delete()------删除规定的目录以及其中的所有文件
GetDirectories()------返回表示当前目录之下的目录的Directory对像的数组
GetFiles()-------返回在当前目录中的File对像的数组
Move()------将规定的目录移动到新位置。可以在新位置为文件夹规定一个新名称
例1:列出磁碟機
string
[] drives
=
Directory.GetLogicalDrives();
foreach
(
string
drive
in
drives)
{
addListItem(drive);
}
例2:列出子文件夾
string
[] dirs
=
Directory.GetDirectories(winDir);
foreach
(
string
dir
in
dirs)
{
addListItem(dir);
}
例3:列出文件
string
[] files
=
Directory.GetFiles(winDir);
foreach
(
string
i
in
files)
{
addListItem(i);
}
例4:递归搜索与搜索字符串相匹配的文件
void
DirSearch(
string
sDir,
string
searchPattern)
{
try
{
foreach
(
string
d
in
Directory.GetDirectories(sDir))
{
foreach
(
string
f
in
Directory.GetFiles(d, searchPattern))
{
addListItem(f);
}
DirSearch(d);
}
}
catch
(System.Exception excpt)
{
Console.WriteLine(excpt.Message);
}
}
2.FileInfo 类
FileInfo类不像File类,它没有静态方法,仅可用于实例化的对像。FileInfo对像表示在磁盘或网络位置的文件,注意它不是流,为了读写文件,必须创建Stream对像。
fileInfo类提供了下面的关于基础性的文件的属性,这些属性可能用来更新文件。
Attributes-----获取或设置当前文件的属性
CreationTime------获取当前文件的创建日期和时间
DirectoryName------获取文件目录的路徑
Exists------判断是否存在文件
FullName------检索文件的完整路徑
Length------获取文件的容量
Name------仅仅返回文件的名称,而不是完整的文件位置路徑、
例:檢視文件信息
FileInfo FileProps
=
new
FileInfo(winDir
+
"
/notepad.exe
"
);
addListItem(
"
File Name =
"
+
FileProps.FullName);
addListItem(
"
Creation Time =
"
+
FileProps.CreationTime);
addListItem(
"
Last Access Time =
"
+
FileProps.LastAccessTime);
addListItem(
"
Last Write TIme =
"
+
FileProps.LastWriteTime);
addListItem(
"
Size =
"
+
FileProps.Length);
FileProps
=
null
;