文件File事例代码
File类位于System.IO名称空间中,包含可以处理文件的静态方法,可以创建FileStream类
File类的方法:
Copy(string sourceFilePath,string DestinationFilePath); 将源文件的内容复制到指定路径的目标文件中(如果目标文件不存在,则在指定的路径中将会以指定的名称创建一个新文件)
Create(string filePath); 在指定路径中,创建一个具有指定名称的文件
Delete(string filePath); 从指定路径中删除一个文件
Exists(string filePath); 验证在指定路径中是否存在一个具有指定名称的文件,返回一个布尔值
Move(string sourceFilePath,string DestinationFilePath); 将指定文件从源位置移到到目标位置
创建文件:
使用File类的Create()方法,返回一个对应于已创建的新文件的FileStream类对象
public static void Main()
{
string filename = @"C:\NewFile.txt";
try
{
//创建文件
FileStream fs = File.Create(filename);
//准备装文本写入文件,将字符串转换为合适的格式,以便可以存储在Byte类型的数组中
Byte[] info = new UTF8Encoding(true).GetBytes("此程序文件使用C#创建");
//写入数据
fs.Write(info, 0, info.Length);
//刷新和关闭FileStream
fs.Flush();
fs.Close();
Console.WriteLine(filename + "已创建。");
}
catch (Exception ex)
{
Console.WriteLine("发生错误:" + ex.Message);
}
Console.ReadKey();
}
提取和设置文件属性
文件属性是附加到文件的元数据,描述文件的某些信息
使用File类的GetAttributes()方法,取得文件属性
Archive 指定该文件为存档文件,并且包含修改的内容
System 指定文件为系统文件,通常所有启动文件都设置了此属性
Hidden 指定该文件为隐藏文件,因此无法在文件资源管理器中或使用命令提示符查看,除非用户在资源管理器中选取了查看隐藏文件
ReadOnly 指定该文本为只读文件(如果是只读文件则无法向其中写入内容)
提取文件的时间戳信息
GetCreationTime() 获取创建文件的日期和时间
GetLastAccessTime() 获取上次访问文件和日期和时间
GetLastWriteTime() 获取上次向文件写入数据的日期和时间
FileInfo类
FileInfo类可用于执行与File类相同的操作,不过FileInfo类是有状态的,文件路径在构造函数中传递
Create() 创建一个文件
CoptTo() 复制一个文件
Delete() 删除一个文件
CreationTime 包含文件的创建时间
LastAccessTime 包含上次访问文件的时间
LastWriteTime 包含上次写入文件的时间
public static void Main()
{
try
{
//创建一个FileInfo对象
FileInfo fi = new FileInfo(@"C:\test.txt");
//创建一个文件
FileStream fs = fi.Create();
//准备将文本写入文件
Byte[] info = Encoding.UTF8.GetBytes("此文件使用C#以程序方式创建");
//写入数据
fs.Write(info, 0, info.Length);
//刷新和关闭FileStream
fs.Flush();
fs.Close();
//复制文件
fi.CopyTo(@"C:\My Documents", true);
Console.WriteLine(@"已复制到C:\My Documents");
Console.WriteLine("创建时间:" + fi.CreationTime.ToString());
Console.WriteLine("最后一次访问时间" + fi.LastAccessTime.ToString());
Console.WriteLine("最后一次写入时间" + fi.LastWriteTime.ToString());
//删除文件
fi.Delete();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
Directoy类
Directoy类也包含所有静态方法,因此需要将目录路径在每次调用时传递
创建目录
使用CreateDirectoy()方法,并返回一个DirectoryInfo对象,可用于处理新创建的目录
要检索一个目录中的文件,可以使用Directory类的GetFiles()方法
etFiles还支持通配符的搜索:Directoy.GetFiles(@"C:\windows","*.txt");
class Program
{
public static void Main()
{
string path = @"C:\Chapter";
try
{
//创建目录
DirectoryInfo di = Directory.CreateDirectory(path);
//显示目录创建日期和时间
Console.WriteLine(path + "创建时间:" + di.CreationTime.ToString());
//调用私用函数生成一个新文件
CreateFile(path + @"\NewFile.txt");
//检索目录文件
string[] files = Directory.GetFiles(path);
//显示目录中的文件
Console.WriteLine("\n\n显示目录中的文件:" + path);
foreach (string filename in files)
{
Console.WriteLine(filename);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
private static void CreateFile(string path)
{
try
{
//创建文件
FileStream fs = File.Create(path);
//准备将文本写入文件
byte[] info = new UTF8Encoding(true).GetBytes("此程序文件使用C#创建");
//写入数据
fs.Write(info, 0, info.Length);
//刷新关闭FileStream
fs.Flush();
fs.Close();
Console.WriteLine(path + "已创建。");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
移动目录:Move()方法
该方法接受两个参数,即源目录路径和目标目录路径,当目标路径不存在时,会创建新的目录,当目标路径存在时将报错
删除目录:Delete()方法
该方法有两种重载方法,第一种,仅接受要删除的目录的路径,并且仅当该目录为空(即不包含文件或子目录)时才可以删除,第二种接受两个参数,即要删除的目录路径和一个布尔值(如果目录/子目录中存在文件,指定是否将其删除)
DirectoryInfo类
与FileInfo类一样,DirectoryInfo类也是有状态的
Create() 用于创建一个目录
MoveTo() 用于移动移动一个目录
Delete() 用于删除一个文件
class Program
{
public static void Main()
{
string path = @"C:\Chp";
string destpath = @"C:\NewChp";
try
{
//创建一个DirectoryInfo对象
DirectoryInfo di = new DirectoryInfo(path);
//创建目录
di.Create();
Console.WriteLine("{0} 创建时间:{1}", path, di.CreationTime.ToString());
//移动目录
di.MoveTo(destpath);
Console.WriteLine("{0} 已移动到:{1}", path, destpath);
//删除目录
di.Delete();
Console.WriteLine("{0} 已删除。", destpath);
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
FileSystemInfo类是.Net框架基类库中的抽象类,DirectoryInfo和FileInfo类都继承自FileSystemInfo类
浙公网安备 33010602011771号