/*文件基本操作
* FileSystemInfo (abstract) 表示任何文件系统对象的基类
* FileInfo(sealed) 和File (静态类) 表示文件系统上的文件
* DirectoryInfo(sealed) 和Directory (静态类) 表示文件系统上的文件夹
* Path (静态类) 这个类包含的静态成员可以用于处理路径名
* DriveInfo 这个类的属性和方法提供了指定驱动器的信息
* System.MarshalByRefObject 这是.net类中用于远程操作的基对象类,它允许在应用程序域之间编组数组。
*
* file 和 directory 这两个类不需要实例化对象就可以对文件类进行操作,如果只对文件进行一次操作,这两个类的方法很有效,因为不需要实例化对象
* fileInfo 和 directoryInfo 这两个类需要实例化对象才可以继续对文件进行操作,比较耗时。需要把每个实例和特定的文件或者文件夹关联起来。如果需要对一个文件或者文件夹
* 进行多次操作,那么这两个类就比较合适。 而且这两个类的对象在构造时,就会读取合适文件系统对象的身份验证和其他信息。相应的无状态类需要再次检查文件或者文件夹的详细内容
* 查看例子 1
* 注意点 1: 在文件和文件夹对象创建时,如果输入一个空的path ,这时不会产生异常
* 2: 在创建后,可以使用自带的exists方法来判断创建的文件或者文件夹是否是合适的类型,返回true表示格式正确,返回false表示格式错误。 此时也不会抛出异常。
* 3: 如果创建文件或者文件夹发现不是合适的类型之后,再调用错误的方法,此时才会抛出异常。
* 4: 如果创建的文件或者文件夹是合适的类型,那么就可以使用自带的方法去查看对象的信息
* 主要属性
* CreationTime 创建文件或文件夹的时间
* DirectoryName (仅用于FileInfo) 包含文件夹的完整路径名
* Parent(仅用于DirectoryInfo) 指定子目录的父目录
* Exists 文件或者文件夹是否存在
* Extension 文件的扩展名,文件夹返回空白
* FullName 文件或者文件夹的完整路径名
* LastAccessTime 最后一次访问文件或者文件夹的时间
* LastWriteTime 最后一次修改文件或者文件夹的时间
* name 文件或者文件夹的名称
* Root(仅用于DirectoryInfo) 路径根部分
* Length (仅用于FileInfo) 返回文件的大小(字节单位)
* 查看例子1
* 文件系统对象主要操作方法
* create() 创建给定名称的文件夹或者空文件。对于FileInfo,该方法会返回一个流对象,以便写入文件
* delete() 删除文件或者文件夹,对于文件夹有一个可以递归的Delete选项
* MoreTo() 移动或重命名文件或文件夹
* CopyTo() (仅用于FileInfo) 复制文件,注意文件夹没有复制方法。如果需要复制完整的目录树,需要单独复制每个文件,创建对应旧文件夹的新文件夹
* GetDirectories() (仅用于DirectoryInfo) 返回DirectoryInfo对象数组,该数组表示文件夹中包含的所有文件
* GetFiles() (仅用于DirectoryInfo) 返回FileInfo对象数组,该数组表示文件夹中包含的所有文件
* EnumerateFiles() 返回文件名的Ienumerable<string>。在返回整个列表之前,可以对列表中的项执行操作
* GetFileSystemInfos() (仅用于DirectoryInfo)返回FileInfo和DirectoryInfo对象,把文件夹中包含的所有对象表示为一个FileSystemInfo引用数组
*
* Path类
* path类不能被实例化,只有一些静态方法,用于对路径名进行操作
*
* 例子2
* 输入一个路径,如果是文件,就输出文件的完整路径,名字,创建时间,最后一次访问时间,最后一次修改时间,大小
* 如果是文件夹,则输出文件夹的全称,遍历文件夹目录下的所有文件夹和文件。
*
*
* 移动,复制,删除操作
* Moveto(),deleteTo()方法,对应file和directory类的方法就是move,delete 方法(删除方法使用后,不会进入回收站)(删除文件夹时,内部必须为空,必须没有包含的文件或者文件夹)
* 文件复制操作就是copyto,对应file方法copy
* 文件夹没有复制整个文件夹的方法,应该复制整个文件夹中的所有文件
*
*
* 读写文件-例子3
* 1 读取文件
* 使用file.readallText(string) 可以添加path
* readallBytes 用来读取二进制文件
* readalllines 根据每行的内容,返回一个字符串数组
* 2 写入文件
* FileSystemInfo (abstract) 表示任何文件系统对象的基类
* FileInfo(sealed) 和File (静态类) 表示文件系统上的文件
* DirectoryInfo(sealed) 和Directory (静态类) 表示文件系统上的文件夹
* Path (静态类) 这个类包含的静态成员可以用于处理路径名
* DriveInfo 这个类的属性和方法提供了指定驱动器的信息
* System.MarshalByRefObject 这是.net类中用于远程操作的基对象类,它允许在应用程序域之间编组数组。
*
* file 和 directory 这两个类不需要实例化对象就可以对文件类进行操作,如果只对文件进行一次操作,这两个类的方法很有效,因为不需要实例化对象
* fileInfo 和 directoryInfo 这两个类需要实例化对象才可以继续对文件进行操作,比较耗时。需要把每个实例和特定的文件或者文件夹关联起来。如果需要对一个文件或者文件夹
* 进行多次操作,那么这两个类就比较合适。 而且这两个类的对象在构造时,就会读取合适文件系统对象的身份验证和其他信息。相应的无状态类需要再次检查文件或者文件夹的详细内容
* 查看例子 1
* 注意点 1: 在文件和文件夹对象创建时,如果输入一个空的path ,这时不会产生异常
* 2: 在创建后,可以使用自带的exists方法来判断创建的文件或者文件夹是否是合适的类型,返回true表示格式正确,返回false表示格式错误。 此时也不会抛出异常。
* 3: 如果创建文件或者文件夹发现不是合适的类型之后,再调用错误的方法,此时才会抛出异常。
* 4: 如果创建的文件或者文件夹是合适的类型,那么就可以使用自带的方法去查看对象的信息
* 主要属性
* CreationTime 创建文件或文件夹的时间
* DirectoryName (仅用于FileInfo) 包含文件夹的完整路径名
* Parent(仅用于DirectoryInfo) 指定子目录的父目录
* Exists 文件或者文件夹是否存在
* Extension 文件的扩展名,文件夹返回空白
* FullName 文件或者文件夹的完整路径名
* LastAccessTime 最后一次访问文件或者文件夹的时间
* LastWriteTime 最后一次修改文件或者文件夹的时间
* name 文件或者文件夹的名称
* Root(仅用于DirectoryInfo) 路径根部分
* Length (仅用于FileInfo) 返回文件的大小(字节单位)
* 查看例子1
* 文件系统对象主要操作方法
* create() 创建给定名称的文件夹或者空文件。对于FileInfo,该方法会返回一个流对象,以便写入文件
* delete() 删除文件或者文件夹,对于文件夹有一个可以递归的Delete选项
* MoreTo() 移动或重命名文件或文件夹
* CopyTo() (仅用于FileInfo) 复制文件,注意文件夹没有复制方法。如果需要复制完整的目录树,需要单独复制每个文件,创建对应旧文件夹的新文件夹
* GetDirectories() (仅用于DirectoryInfo) 返回DirectoryInfo对象数组,该数组表示文件夹中包含的所有文件
* GetFiles() (仅用于DirectoryInfo) 返回FileInfo对象数组,该数组表示文件夹中包含的所有文件
* EnumerateFiles() 返回文件名的Ienumerable<string>。在返回整个列表之前,可以对列表中的项执行操作
* GetFileSystemInfos() (仅用于DirectoryInfo)返回FileInfo和DirectoryInfo对象,把文件夹中包含的所有对象表示为一个FileSystemInfo引用数组
*
* Path类
* path类不能被实例化,只有一些静态方法,用于对路径名进行操作
*
* 例子2
* 输入一个路径,如果是文件,就输出文件的完整路径,名字,创建时间,最后一次访问时间,最后一次修改时间,大小
* 如果是文件夹,则输出文件夹的全称,遍历文件夹目录下的所有文件夹和文件。
*
*
* 移动,复制,删除操作
* Moveto(),deleteTo()方法,对应file和directory类的方法就是move,delete 方法(删除方法使用后,不会进入回收站)(删除文件夹时,内部必须为空,必须没有包含的文件或者文件夹)
* 文件复制操作就是copyto,对应file方法copy
* 文件夹没有复制整个文件夹的方法,应该复制整个文件夹中的所有文件
*
*
* 读写文件-例子3
* 1 读取文件
* 使用file.readallText(string) 可以添加path
* readallBytes 用来读取二进制文件
* readalllines 根据每行的内容,返回一个字符串数组
* 2 写入文件