文件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类

posted on 2015-05-10 16:41  阿兴的平凡世界  阅读(106)  评论(0)    收藏  举报

导航