System.IO.File类和System.IO.FileInfo类关键提供相关文件多种操作,在使用时需要引用System.IO命名空间。下面经过程序实例来介绍其关键属性和方法。
(1)文件打开方法:File.Open()
该方法申明以下:
publicstatic FileStream Open(string path,FileMode mode)
下面代码打开存放在c:\tempuploads目录下名称为newFile.txt文件,并在该文件中写入hello。
privatevoid OpenFile()
{
FileStream.TextFile=File.Open(@"c:\tempuploads\newFile.txt",FileMode.Append); byte [] Info = {(byte)'h',(byte)'e',(byte)'l',(byte)'l',(byte)'o'};
TextFile.Write(Info,0,Info.Length);
} TextFile.Close();
publicstatic FileStream Create(string path;)
下面代码演示怎样在c:\tempuploads下创建名为newFile.txt文件。
因为File.Create方法默认向全部用户授予对新文件完全读/写访问权限,所以文件是用读/写访问权限打开,必需关闭后才能由其它应用程序打开。为此,所以需要使用FileStream类Close方法将所创建文件关闭。
privatevoid MakeFile()
{
FileStreamNewText=File.Create(@"c:\tempuploads\newFile.txt");
} | NewText.Close(); |
|
(3) 文件删除方法:File.Delete() |
|
该方法申明以下:
publicstatic void Delete(string path);
下面代码演示怎样删除c:\tempuploads目录下newFile.txt文件。
privatevoid DeleteFile()
{
File.Delete(@"c:\tempuploads\newFile.txt");
}
(4)文件复制方法:File.Copy
该方法申明以下:
publicstatic void Copy(string sourceFileName,string destFileName,booloverwrite); 下面代码将c:\tempuploads\newFile.txt复制到c:\tempuploads\BackUp.txt。
因为Cope方法OverWrite参数设为true,所以假如BackUp.txt文件已存在话,将会被
复制过去文件所覆盖。privatevoid CopyFile()
{
}(5) 文件移动方法:File.Move
该方法申明以下:
publicstatic void Move(string sourceFileName,string destFileName); 下面代码能够将c:\tempuploads下BackUp.txt文件移动到c盘根目录下。
注意:
只能在同一个逻辑盘下进行文件转移。假如试图将c盘下文件转移到d盘,将发生错误。
privatevoid MoveFile()
{
File.Move(@"c:\tempuploads\BackUp.txt",@"c:\BackUp.txt"); } (6) 设置文件属性方法:File.SetAttributes
该方法申明以下:
publicstatic void SetAttributes(string path,FileAttributes fileAttributes);下面代码能够设置文件c:\tempuploads\newFile.txt属性为只读、隐藏。
privatevoid SetFile()
{
File.SetAttributes(@"c:\tempuploads\newFile.txt",
FileAttributes.ReadOnly|FileAttributes.Hidden);
}文件除了常见只读和隐藏属性外,还有Archive(文件存档状态),System(系统文件),Temporary(临时文件)等。相关文件属性具体情况请参看MSDN中FileAttributes描述。
(7)判定文件是否存在方法:File.Exist
该方法申明以下:
publicstatic bool Exists(string path);
下面代码判定是否存在c:\tempuploads\newFile.txt文件。若存在,先复制该文件,然后其删除,最终将复制文件移动
作,最终将文件属性设为只读、隐藏。;若不存在,则先创建该文件,然后打开该文件并进行写入操
{ CopyFile(); //复制文件
DeleteFile(); //删除文件
MoveFile(); //移动文件
}
else
{
MakeFile(); //生成文件
OpenFile(); //打开文件
} | SetFile(); //设置文件属性 |
|
另外,File 类对于Text 文本提供了更多支持。
?AppendText:将文本追加到现有文件
?CreateText:为写入文本创建或打开新文件
?OpenText:打开现有文本文件以进行读取
但上述方法关键对UTF-8编码文本进行操作,从而显得不够灵活。在这里推荐读者使用下面代码对txt文件进行操作。
?对txt文件进行“读”操作,示例代码以下:
StreamReader | TxtReader | = | new |
StreamReader(@"c:\tempuploads\newFile.txt",System.Text.Encoding.Default);string FileContent;
FileContent= TxtReader.ReadEnd();
TxtReader.Close();
?对txt文件进行“写”操作,示例代码以下:
StreamWriterstringFileContent;
TxtWriter.Write(FileContent);
TxtWriter.Close();System.IO.Directory类和System.DirectoryInfo类
关键提供相关目录多种操作,使用时需要引用System.IO命名空间。下面经过程序实例
来介绍其关键属性和方法。
(1)目录创建方法:Directory.CreateDirectory
该方法申明以下:
publicstatic DirectoryInfo CreateDirectory(string path);
下面代码演示在c:\tempuploads文件夹下创建名为NewDirectory目录。
privatevoid MakeDirectory()
{
Directory.CreateDirectory(@"c:\tempuploads\NewDirectoty");
}
(2)目录属性设置方法:DirectoryInfo.Atttributes
下面代码设置c:\tempuploads\NewDirectory目录为只读、隐藏。和文件属性相同,目录属性也是使用FileAttributes来进行设置。
privatevoid SetDirectory()
{
DirectoryInfoNewDirInfo = new DirectoryInfo(@"c:\tempuploads\NewDirectoty"); NewDirInfo.Atttributes= FileAttributes.ReadOnly|FileAttributes.Hidden;
}
该方法申明以下: (3)目录删除方法:Directory.Delete
它能够决定是否删除非空目录。假如该参数值为true,将删除整个目录,即使该目录下有文
件或子目录;若为false,则仅当目录为空时才可删除。
privatevoid SetDirectory()
{
DirectoryInfoNewDirInfo = new DirectoryInfo(@"c:\tempuploads\NewDirectoty"); NewDirInfo.Atttributes= FileAttributes.ReadOnly|FileAttributes.Hidden;
}
(4)目录移动方法:Directory.Move
该方法申明以下:
public static void Move(string sourceDirName,string destDirName);
下面代码将目录c:\tempuploads\NewDirectory移动到c:\tempuploads\BackUp。
privatevoid MoveDirectory()
{
File.Move(@"c:\tempuploads\NewDirectory",@"c:\tempuploads\BackUp");
}(5) 获取目前目录下全部子目录方法:Directory.GetDirectories
该方法申明以下:
publicstatic string[] GetDirectories(string path;);
下面代码读出c:\tempuploads\目录下全部子目录,并将其存放到字符串数组中。
privatevoid GetDirectory()
{
string[] Directorys;
} Directorys= Directory. GetDirectories (@"c:\tempuploads");
publicstatic string[] GetFiles(string path;);
下面代码读出c:\tempuploads\目录下全部文件,并将其存放到字符串数组中。
privatevoid GetFile()
{
string[] Files;
Files= Directory. GetFiles (@"c:\tempuploads",);
}(7) 判定目录是否存在方法:Directory.Exist
该方法申明以下:
public static bool Exists(
string path;
);
下面代码判定是否存在c:\tempuploads\NewDirectory目录。若存在,先获取该目录下子目录和文件,然后其移动,最终将移动后目录删除。若不存在,则先创建该目录,然后将目录属性设为只读、隐藏
if(File.Exists(@"c:\tempuploads\NewDirectory"))//判定目录是否存在{
GetDirectory();//获取子目录
GetFile();//获取文件
MoveDirectory();//移动目录
DeleteDirectory();//删除目录
}
{ else
}
注意:
路径有3种方法,目前目录下相对路径、目前工作盘相对路径、绝对路径。以C:\Tmp\Book ,“\Tmp\Book”,“C:\Tmp\Book”全部表示为例(假定目前工作目录为C:\Tmp)。“Book”C:\Tmp\Book。
另外,在C#中“\”是特殊字符,要表示它话需要使用“\\”。因为这种写法不方便,C#语言提供了@对其简化。只要在字符串前加上@即可直接使用“\”。所以上面路径在C#中应该表示为“Book”,@“\Tmp\Book”,@“C:\Tmp\Book”。