C#中File类总结

使用File类操作文件

方法

说明

Copy

将现有文件复制到新文件

Create

在指定路径中创建文件

Delete

删除指定的文件,如果指定的文件不存在,则不引发异常

Exists

确定文件是否存在

Move

将指定文件移动到新位置,并提供指定新文件名的选项。

Open

打开指定路径上的FileStream

应用实例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;                   //记得添加对System.IO的引用。

 

namespace 文件类的应用

{

    class Program

    {

        static void Main(string[] args)

        {

            string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.txt";

            File.Create(m_path);                  //文件类的静态方法,创建文件

            if (File.Exists(m_path))            //验证文件是否存在的方法,返回布尔值。

            {

                Console.WriteLine("文件存在");

            }

            else Console.WriteLine("文件创建失败");

        }

    }

}

 

使用Directory类操作文件

方法

说明

CreateDirectory

创建指定路径中的所有目录

Delete

删除指定的目录

Exists

确定指定路径是否引用磁盘上的现有目录(即是否存在)

GetCurrentDirectory

获取应用程序的当前工作目录

GetDirectories

获取指定目录中的子目录名称

GetFiles

返回指定目录中文件的名称

GetLogicalDrives

检索此计算机上格式为“<驱动器号>:/”的逻辑驱动器的名称

GetParent

检测指定路径的父目录,包括绝对路径和相对路径

Move

将文件或目录及其内容移动到新位置

应用实例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;                   //记得添加对System.IO的引用。

 

namespace 文件类的应用

{

    class Program

    {

        static void Main(string[] args)

        {

             string m_path = @"C:/Documents and Settings/张健和/桌面/Roy";

            Directory.CreateDirectory(m_path);          //Directory.CreateDirectory的应用

            if (Directory.Exists(m_path))

            {

                Console.WriteLine("文件夹生成成功");

            }

            else Console.WriteLine("文件夹创建失败");

            Console.ReadLine();

            Directory.Delete(m_path);                      //Directory.Delete的应用

             if (Directory.Exists(m_path))

            {

                Console.WriteLine("文件夹删除失败");

            }

            else Console.WriteLine("文件夹删除成功");

            Console.ReadLine();

            string m_path2=Directory.GetCurrentDirectory();

            Console.WriteLine("当前应用程序的目录为:"+m_path2);

            Console.ReadLine();

            string []m_path3=new string[100];

            m_path3 = Directory.GetFiles(m_path2);        //Directory.GetFiles的应用

            foreach (string i in m_path3)

            {

                Console.WriteLine("当前应用程序的目录中的子文件为:" + i);

            }

            Console.ReadLine();

        }

    }

}

 

使用FileInfo类操作文件

     文件信息类FileInfoFile类不同。它虽然也提供创建,复制,删除,移动和打开文件的方法,并且帮助创建FileStream对象,但是它提供的仅仅是实例方法。因此要使用FileInfo类,必须先实例化一个FileInfo对象。

方法

说明

Attributes

获取或设置当前FileSystemInfoFileAttributes

CreationTime

获取或设置当前FileSystemInfo对象的创建时间

Directory

获取父目录的实例

DirectoryName

获取表示目录的完整路径的字符串

Exists

获取指示文件是否存在的值

Extension

获取表示文件扩展名部分的字符串

FullName

获取目录或文件的完整目录

IsReadOnly

获取或设置当前文件是否为只读的值

Length

获取当前文件的大小

Name

获取文件名

应用实例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;                   //记得添加对System.IO的引用。

 

namespace 文件类的应用

{

    class Program

    {

        static void Main(string[] args)

        {

           string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.txt";

            if (!File.Exists(m_path))

            {

                File.Create(m_path);

            }      

                 FileInfo useFileInfo = new FileInfo(m_path);         

            string a = useFileInfo.Attributes.ToString();

            string t = useFileInfo.CreationTime.ToString();

            Console.WriteLine("文件的属性是:"+a+"/n创建时间是:"+t);     //那个文件属性自己查下英语词典。。

            Console.ReadLine();

            string d = useFileInfo.Directory.ToString();

            string dn = useFileInfo.DirectoryName.ToString();

            string ex=useFileInfo.Extension.ToString();

            string name = useFileInfo.Name.ToString();

            Console.WriteLine("父目录是:" + d + "/n目录完整路径是:" + dn+"/n扩展名是:"+ex+"/n文件名是:"+name);

            Console.ReadLine();

        }

    }

}

 


使用DirectoryInfo类操作文件夹

方法

说明

Attributes

获取或设置当前FileSystemInfoFileAttributes

CreationTime

获取或设置当前FileSystemInfo对象的创建时间

Exists

获取指示目录是否存在的值

Extension

获取表示文件扩展名部分的字符串

Name

获取此DirectoryInfo实例的名称

Parent

获取指定子目录的父目录

Root

获取路径的根部分

应用实例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;                   //记得添加对System.IO的引用。

 

namespace 文件类的应用

{

    class Program

    {

        static void Main(string[] args)

        {

string m_path = @"C:/Documents and Settings/张健和/桌面/Roy";

            DirectoryInfo useDirectoryInfo = new DirectoryInfo(m_path);       //用DirectoryInfo时记得要新建实例

            if (useDirectoryInfo.Exists)              //与Directory类不同,这里Exists不是方法

            {

                Console.WriteLine("文件夹存在");

            }

            else

            {

                Console.WriteLine("文件夹不存在,系统自动新建文件夹");

                Directory.CreateDirectory(m_path);

            }

            string a = useDirectoryInfo.Attributes.ToString();         //文件夹类型

            string ct = useDirectoryInfo.CreationTime.ToString();      //创建时间

            string name = useDirectoryInfo.Name.ToString();          //文件名称

            string P=useDirectoryInfo.Parent.ToString();             //文件的父目录

            string R = useDirectoryInfo.Root.ToString();          //文件夹的根目录

            Console.WriteLine(

                "文件夹类型是:" + a

                + "/n创建时间是:" + ct

                + "/n文件夹名称是:" + name

                + "/n文件的父目录是:" + P

                + "/n文件夹的根目录是:" + R);

            Console.ReadLine();

 

        }

    }

}

 

使用FileStream类读取和写入文件

FileStream类的构造函数简介

构造函数

说明

FileStream(String.FileMode)

使用指定的路径和创建模式初始化FileStream类的新实例

FileStream(String.FileMode,FileAccess)

使用指定的路径、创建模式和读/写权限初始化FileStream类的新实例

FileMode枚举成员简介

成员

说明

Append

打开现有文件并查找到文件尾,或创建新文件。FileMode.Append只能同FileAccess一起使用,任何读尝试都会失败并引发<ArgumentException>

Create

指定操作系统应创建文件。如果文件存在,它将被改写。这要求<FileIOPermissionAccess.Write>System.IO.FileMode.Create等效于这样的请求:如果文件不存在,则使用<CreateNew>;否则使用<Truncate>

CreateNew

指定操作系统应创建文件。此操作需要FileIOPermissionAccess.Write。如果文件已经存在,则将引发IOException

Open

指定操作系统应打开现有文件。打开文件的能力取决于FileAccess所指定的值。如果该文件不存在,则引发System.IO.FileNotFoundException

OpenOrCreate

如果文件存在,指定操作系统应打开文件,否则应创建文件。如果用FileAccess.Read打开文件,则需要<FileIOPermissionAccess.Read>。如果文件访问为FileAccess.WriteFileAccess.ReadWrite,则需要FileIOPermissionAccess.Write。如果文件访问为FileAccess.Append,则需要<FileIOPermissionAccess.Append>

Truncate

指定操作系统应打开现有文件。文件一旦打开,就将被截断为零字节大小。此操作需要FileIOPermissionAccess.Write。试图从使用Truncate打开的文件中进行读取将导致异常。

(由于本人不太推荐用FileStream类进行文件操作,因为比较影响效率,所以以下的应用实例不是太全面)

应用实例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;                   //记得添加对System.IO的引用。

 

namespace 文件类的应用

{

    class Program

    {

        static void Main(string[] args)

        {byte[] m_bDateWrite = new byte[100];

            char[] m_cDateWrite = new char[100];

            string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.txt";

            try

            {

                //创建c:/的FileStream对象

                FileStream m_FileStream = new FileStream(m_pathFileMode.OpenOrCreateFileAccess.ReadWrite);

                m_cDateWrite = "My First File Operation".ToCharArray();       //将要写入的字符串转换成字符数组

                //通过UTF-8编码方法将字符数组转换成字节数组(自己百度一下什么是UTF-8)

                Encoder m_Enc = Encoding.UTF8.GetEncoder();//?

                m_Enc.GetBytes(m_cDateWrite, 0, m_cDateWrite.Lengthm_bDateWrite, 0, true);

                m_FileStream.Seek(0, SeekOrigin.Begin);            //设置流的当前位置为文件开始位置

                m_FileStream.Write(m_bDateWrite, 0, m_bDateWrite.Length);         //写入文件

            }

            catch (System.Exception ex)

            {

                Console.WriteLine("there is an ioException");

                Console.WriteLine(ex.Message);           //异常信息

                Console.ReadLine(); return;

            }

            Console.WriteLine("write to File Succeed!");

            Console.ReadLine();

            return;

        }

    }

}

 

使用StreamWriter类写入文件

构造函数

说明

StreamWriter(Stream)

UTF-8编码及默认缓冲区大小,为指定的流初始化StreamWriter类的一个新实例

StreamWriter(String)

使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter类的新实例

StreamWriter(String,Boolean)

使用默认编码和缓冲区大小,为指定路径上的指定文件初始化StreamWriter类的新实例。如果文件存在,则可以将其必定或向其追加。如果不存在,则此构造函数将创建一个新文件

StreamWriter方法

方法

说明

Close

关闭当前的StreamWriter对象和基础流

Write

写入流

WriteLine

写入重载参数指定的某些数据,后跟行结束符

应用实例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;                   //记得添加对System.IO的引用。

 

namespace 文件类的应用

{

    class Program

    {

        static void Main(string[] args)

        {try

            {

                string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.txt";

                //保留文件现有数据,以追加写入的方式打开文件

                StreamWriter sw = new StreamWriter(m_pathtrue);      

                sw.WriteLine("Another File Operation Method");

                sw.Close();

            }

            catch (System.Exception e)

            {

                Console.WriteLine(e.Message);

                Console.ReadLine();

                return;

            }

            Console.WriteLine("Write to File Succeed!");

            Console.ReadLine();

            return;

        }

    }

}

使用StreamReader类读取文件

构造函数

说明

StreamReader(Stream)

为指定的流初始化StreamReader类的新实例

StreamReader(String)

为指定的文件名初始化StreamReader类的新实例

StreamReader方法

方法

说明

Close

关闭StreamReader对象和基础流,并释放与读取器关联的所有资源

Read

读取输入流中的下一个字符或下一个组字符

ReadLine

从当前流中读取一行字符并将数据作为字符串返回

ReadToEnd

从流当前位置到末尾读取流

使用方法和StreamWriter差不多,大家可以尝试尝试自己写一个DEMO

 

 

使用BinaryWriter类进行二进制写入

构造函数

说明

BinaryWriter()

初始化向流中写入BinaryWriter类的实例

BinaryWriter(Stream)

基于所提供的流,用UTF8作为字符串编码来初始化BinaryWriter类的新实例

BinaryWriter(Stream,Encoding)

基于所提供的流和特定的字符编码,初始化BinaryWriter类的新实例

BinaryWriter方法

方法

说明

Close

关闭当前的BinaryWriter对象和基础流

Write

将值写入当前流

 

使用BinaryReader类进行二进制读取

构造函数

说明

BinaryReader(Stream)

基于所提供的流,用UTF-8 Encoding初始化BinaryReader类的新实例

BinaryReader(Stream,Encoding)

基于所提供的流和特定的字符编码,初始化BinaryReader类的新实例

BinaryReader方法

方法

说明

Close

关闭当前阅读器及基础流

Read

从基础流中读取字符,并提升流的当前位置

BinaryWriterBinaryReader的应用实例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;                   //记得添加对System.IO的引用。

 

namespace 文件类的应用

{

    class Program

    {

        static void Main(string[] args)

        {string m_path = @"C:/Documents and Settings/张健和/桌面/Roy.dat";

            FileStream FS = new FileStream(m_pathFileMode.OpenOrCreate);

            BinaryWriter BW = new BinaryWriter(FS);        //通过文件流创建相应的二进制写入器

            for (int i = 0; i < 11;i++ )

            {

                BW.Write(i);

 

            }

            BW.Close();         //先关闭

            FS.Close();

            Console.WriteLine("写入成功!");

            Console.ReadLine();

            FileStream FS1 = new FileStream(m_pathFileMode.OpenFileAccess.Read);

            BinaryReader BR = new BinaryReader(FS1);

            for (int i = 0; i < 11;i++ )

            {

                Console.WriteLine(BR.ReadInt32());

            }

            BR.Close();

            FS.Close();

            Console.ReadLine();

        }

    }

}


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值