C#之Directory类、DirectoryInfo类和Fileinfo,File以及FilesSystemInfo

一 两者的共同点

都用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件

默认情况下,将向所有用户授予对新文件的完全读写访问权限。

二 两者的区别

File类是静态类,由于所有的File方法都是静态的,所以如果只想执行一个操作,那么使用File方法的效率比使用相应的FileInfo实例方法可能更高。

所有的File方法都要求当前所操作的文件的路径。File类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用FileInfo 的相应实例方法,因为并不总是需要安全检查。

file,directory可以控制多个文件所以进行每次安全检查,而FileInfo,DirectoryInfo只能控制一个文件信息只进行一次安全处理。

filesysteminfo提供fileinfo和directoryinfo的共有方法,实现对文件或目录进行操作,当不确定操作的对象是文件还是目录时使用filesysteminfo就会很方便。

静态方法每次对文件进行操作过程是:静态方法存在于栈头,它是由类调用,然后寻找需要操作的文件。寻找需要操作文件的过程是个IO过程,耗时比较长。但它不必要到堆区去遍历实例化新对象。普通方法是由当时的对象调用,需要创建对象,new一个,(静态方法不需要此过程)但如果操作次数多的话,普通方法就不需要再次去执行不必要而且耗时的 IO操作,就能整体提速!

所以执行方法的次数也就能决定了使用哪个类的最佳选择。

三 Directory类常用的方法如下:

CreateDirectory:按指定路径创建所有文件夹和子文件夹。

Delete:删除指定文件夹。
Exists:检查指定路径的文件夹是否存在,存在,返回true。
GetCreationTime:返回指定文件或文件夹的创建日期和时间。
GetCurrentDirectory:获取应用程序的当前工作文件夹。
GetDirectories:获取指定文件夹中子文件夹的名称。
GetDirectoryRoot:返回指定路径的卷信息、根信息或两者同时返回。
GetFiles:返回指定文件夹中子文件的名称。
GetFileSystemEntries:返回指定文件夹中所有文件和子文件的名称。
GetLastAccessTime:返回上次访问指定文件或文件夹的创建日期和时间。
GetLastWriteTime:返回上次写入指定文件或文件夹的创建日期和时间。
GetLogicalDrives:检索计算机中的所有驱动器,例如A:、C:等等。
GetParent:获取指定路径的父文件夹,包括绝对路径和相对路径。
Move:将指定文件或文件夹及其内容移动到新位置。
SetCreationTime:设置指定文件或文件夹的创建日期和时间。
SetCurrentDirectory:将应用程序的当前工作文件夹设置指定文件夹。
SetLastAccessTime:设置上次访问指定文件或文件夹的日期和时间。
SetLastWriteTime:设置上次写入指定文件夹的日期和时间。

四目录创建方法:Directory.CreateDirectory

方法声明如下:public static DirectoryInfo CreateDirectory(string path);下面的代码演示在c:\Dir1文件夹下创建名为Dir2子文件夹。
Directory.CreateDirectory(@"c:\Dir1\Dir2");

五目录属性设置方法:DirectoryInfo.Atttributes

下面的代码设置c:\Dir1\Dir2目录为只读、隐藏。与文件属性相同,目录属性也是使用FileAttributes来进行设置的。
DirectoryInfo DirInfo=new DirectoryInfo(@"c:\Dir1\Dir2");
DirInfo.Atttributes=FileAttributes.ReadOnly|FileAttributes.Hidden;

六目录删除方法:Directory.Delete

该方法声明如下:public static void Delete(string path,bool recursive);下面的代码可以将c:\Dir1\Dir2目录删除。Delete方法的第二个参数为bool类型,它可以决定是否删除非空目录。如果该参数值为true,将删除整个目录,即使该目录下有文件或子目录;若为false,则仅当目录为空时才可删除。
Directory.Delete(@"c:\Dir1\Dir2",true);

七目录移动方法:Directory.Move

该方法声明如下:public static void Move(string sourceDirName,string destDirName);下面的代码将目录c:\Dir1\Dir2移动到c:\Dir3\Dir4。
File.Move(@"c:\Dir1\Dir2",@"c:\Dir3\Dir4");}

八获取当前目录下所有子目录:Directory.GetDirectories

该方法声明如下:public static string[] GetDirectories(string path;);下面的代码读出c:\Dir1\目录下的所有子目录,并将其存储到字符串数组中。
string [] Directorys;
Directorys = Directory. GetDirectories (@"c:\Dir1");
获得所有逻辑盘符:
string[] AllDrivers=Directory.GetLogicalDrives();

九获取当前目录下的所有文件方法:Directory.GetFiles

该方法声明如下:public static string[] GetFiles(string path;);下面的代码读出c:\Dir1\目录下的所有文件,并将其存储到字符串数组中。
string [] Files;
Files = Directory. GetFiles (@"c:\Dir1",);

十判断目录是否存在方法:Directory.Exist

该方法声明如下:public static bool Exists(string path;);下面的代码判断是否存在c:\Dir1\Dir2目录。
if(File.Exists(@"c:\Dir1\Dir2"))//判断目录是否存在
{…}//处理语句
注意:路径有3种方式,当前目录下的相对路径、当前工作盘的相对路径、绝对路径。以C:\dir1\dir2为例(假定当前工作目录为C:\Tmp)。“dir2”,“\dir1\dir2”,“C:\dir1\dir2”都表示C: \dir1\dir2。另外,在C#中 “\”是特殊字符,要表示它的话需要使用“\\”。由于这种写法不方便,C#语言提供了@对其简化。只要在字符串前加上@即可直接使用“\”。所以上面的路径在C#中应该表示为”dir2”,@”\dir1\dir2”,@”C:\dir1\dir2”。

时间: 2024-09-30 16:54:24

C#之Directory类、DirectoryInfo类和Fileinfo,File以及FilesSystemInfo的相关文章

C# Directory和DirectoryInfo类(文件目录操作)

对目录操作例子: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace DirectoryandDirectoryInfo { class Program { static void Main(string[] args) { string dirPath = "d:

(转).NET的IO:Path、File、FileInfo、Directory、DirectoryInfo、DriveInfo、FileSystemWatcher

1.管理文件系统 一般而言,应用程序都会有保存数据.检索数据的需求. 1.1 使用 path 类来访问文件路径 [path常用的方法]:http://www.cnblogs.com/tangge/archive/2012/10/30/2746458.html#a3 1.2 使用 File 和 FileInfo 类访问文件 1.2.1 File 类 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 static void Main(string[] args

C#文件夹操作之Directory类和DirectoryInfo类

问题的由来 怎么样使用 Cocos2d-x 快速开发游戏,方法很简单,你可以看看其自带的例程,或者从网上搜索教程,运行起第一个HelloWorld,然后在 HelloWorld 里面写相关逻辑代码,添加我们的层.精灵等 ~ 我们并不一定需要知道 Cocos2d-x 是如何运行或者在各种平台之上运行,也不用知道 Cocos2d-x 的游戏是如何运行起来的,它又是如何渲染界面的 ~~~ 两个入口 程序入口的概念是相对的,AppDelegate 作为跨平台程序入口,在这之上做了另一层的封装,封装了不同

C# 运用DirectoryInfo类和FileInfo类

DirectoryInfo类和FileInfo类的基类都是FileSystemInfo类,这个类是一个抽象类,也就是说你不可以实例化该类,只能通过继承产生其子类并实例化其子类.然而你却可以运用由该类定义的各种属性,下面的表格显示了该类已经定义了的各种属性. 表2 DirectoryInfo类提供了创建.删除和移动目录等方法,要运用表2中的各种属性,我们首先得创建一个DirectoryInfo类的对象,然后就可以访问其各种属性了. 同时,我们还可以运用FileAttributes枚举类型值来获取和

C#文件与流(FileStream、StreamWriter 、StreamReader 、File、FileInfo、Directory、directoryInfo、Path、Encoding)

(FileStream.StreamWriter .StreamReader .File.FileInfo.Directory.DirectoryInfo.Path.Encoding) C#文件与流(FileStream.StreamWriter .StreamReader .File.FileInfo.Di,有需要的朋友可以参考下. 文件与流(FileStream.StreamWriter .StreamReader .File.FileInfo.Directory.DirectoryInfo

详解C#中System.IO.File类和System.IO.FileInfo类的用法

System.IO.File类和System.IO.FileInfo类主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间.下面通过程序实例来介绍其主要属性和方法. (1) 文件打开方法:File.Open () 该方法的声明如下:     public static FileStream Open(string path,FileMode mode)  下面的代码打开存放在c:\tempuploads目录下名称为newFile.txt文件,并在该文件中写入hello. pri

小项目:mini资源管理器【使用IO流:包含(Directory与DirectoryInfo、File与FileInfo的用法)】

主界面是这样的 1.在点击查询引发的事件时把TextBox.Text输入的目录地址加载到TreeList控件里. private void btnSelect_Click(object sender, EventArgs e) { //避免重复加载tv.Nodes.Clear(); ////Load事件手动添加根节点TreeNode tn = new TreeNode(); tn.Text = tbxName.Text;//根节点名字:tn.Tag = tbxName.Text;//根节点物理地

DirectoryInfo类

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace WindowsFormsApplication7 { public parti

Java File类学习笔记2:File类对象及常用操作方法

一. 文件.相对路径与绝对路径 1.文件 (1)标准文件:就像图片,音乐文件等. (2)目录文件:也就是平常所说的文件夹. (3)虚拟内存文件:系统在运行程序时生成的临时性文件. 2.文件的路径 (1)相对路径:相对于某一文件的路径,形象地说是把两文件的绝对路径相同的部分砍掉,剩下的就是相对路径 如: A文件是"D:\MyDocuments\StudySample\src\cn\xmh", B文件是"D:\MyDocuments\StudySample\src\netjava