文件和流(Files and Streams)之 Directory类和File类
2009-10-09 11:21
344 查看
.Net Framework 提供了几个基类,用于获取现有文件信息。这些基类位于System.IO命名空间中,主要包括以下几个:
Directory和File:这两个类提供一组静态方法,可以通过它们获取任意服务器上可见文件和目录的信息。
DriveInfo,DirectoryInfo和FileInfo:这些类使用相似的实例方法和属性来获取同样的信息
这两组类提供相似的方法和属性。主要差别在于调用任何方法前必须创建DirectoryInfo或FileInfo对象,而Directory和File类的静态方法随时都可用。一般而言,Directory和File类更适合处理一次性任务。另一方面,如果你需要获取若干信息,创建DirectoryInfo和FIleInfo对象则更好一些,这样不必在每次调用方法时都提供文件或目录的名称。同时他们还更快一些,因为FileInfo和DirectoryInfo类只执行一次安全检查(仅在你创建对象实例时)。Directory和File类在每次调用方法时都要执行安全检查。
Directory类和File类
Directory类和File类提供了很多有用的方法(见msdn)
Directory和File的方法都非常直观。例如,可以用下面这段代码输出一个动态列表,显示当前目录中的每个文件名称。
string directoryName = @"C:\Temp";
string[] fileList = Directory.GetFiles(directoryName);
foreach(string file in fileList)
{
lstFiles.Items.Add(file);
}
上例中包含文件路径C:Temp的字符串前面跟着一个@字符。它告诉c#完全按照你写的格式解释字符串。没有这个字符的话,c#会认为是从目录分隔符“\”开始一个特殊字符序列。另一个办法是使用转义字符序列"\\",C#把它解释为单个斜杠。所以,应该把路径写作"C:\\Temp".
因为所谓的文件列表只是普通的字符串列表,它可以很方便地绑定到列表控件上,这样就可以用如下更高效的语法在页面上显示它们了:
string dirctoryName = @"C:\Temp";
lstFiles.DataSource = Direcory.GetFiles(dirctoryName);
lstFiles.DataBind();
PS:要让这段代码正常运行,用于运行ASP.NET工作进程的账号必须有访问所使用的目录权限,否则,web页面试图访问文件系统时会抛出一个SecurityException异常。你可以右击修改目录许可,选择"属性"---"安全"标签。
如果使用的是IIS5的默认ASP.NET设置,你可以为ASP.NET账号赋予读写权限;如果是IIS6,需要给IIS_WPG组赋予许可;对于IIS7,需要给IIS_USRS组赋予许可。另外,你可以修改ASP.NET使用的账号。
Directory和File:这两个类提供一组静态方法,可以通过它们获取任意服务器上可见文件和目录的信息。
DriveInfo,DirectoryInfo和FileInfo:这些类使用相似的实例方法和属性来获取同样的信息
这两组类提供相似的方法和属性。主要差别在于调用任何方法前必须创建DirectoryInfo或FileInfo对象,而Directory和File类的静态方法随时都可用。一般而言,Directory和File类更适合处理一次性任务。另一方面,如果你需要获取若干信息,创建DirectoryInfo和FIleInfo对象则更好一些,这样不必在每次调用方法时都提供文件或目录的名称。同时他们还更快一些,因为FileInfo和DirectoryInfo类只执行一次安全检查(仅在你创建对象实例时)。Directory和File类在每次调用方法时都要执行安全检查。
Directory类和File类
Directory类和File类提供了很多有用的方法(见msdn)
Directory和File的方法都非常直观。例如,可以用下面这段代码输出一个动态列表,显示当前目录中的每个文件名称。
string directoryName = @"C:\Temp";
string[] fileList = Directory.GetFiles(directoryName);
foreach(string file in fileList)
{
lstFiles.Items.Add(file);
}
上例中包含文件路径C:Temp的字符串前面跟着一个@字符。它告诉c#完全按照你写的格式解释字符串。没有这个字符的话,c#会认为是从目录分隔符“\”开始一个特殊字符序列。另一个办法是使用转义字符序列"\\",C#把它解释为单个斜杠。所以,应该把路径写作"C:\\Temp".
因为所谓的文件列表只是普通的字符串列表,它可以很方便地绑定到列表控件上,这样就可以用如下更高效的语法在页面上显示它们了:
string dirctoryName = @"C:\Temp";
lstFiles.DataSource = Direcory.GetFiles(dirctoryName);
lstFiles.DataBind();
PS:要让这段代码正常运行,用于运行ASP.NET工作进程的账号必须有访问所使用的目录权限,否则,web页面试图访问文件系统时会抛出一个SecurityException异常。你可以右击修改目录许可,选择"属性"---"安全"标签。
如果使用的是IIS5的默认ASP.NET设置,你可以为ASP.NET账号赋予读写权限;如果是IIS6,需要给IIS_WPG组赋予许可;对于IIS7,需要给IIS_USRS组赋予许可。另外,你可以修改ASP.NET使用的账号。
相关文章推荐
- C++ 文件和流操作(Files and streams)
- JHTP自测题_第十五章_文件、流和对象序列化(Files, Streams, and Object Serialization)
- 学习实战完全笔记--JavaSE----流与文件(Streams and Files)
- JHTP小结_第十五章_文件、流和对象序列化(Files, Streams, and Object Serialization)
- 文件和流(Files and Streams)之 DirectoryInfo类和FileInfo
- Java基础之访问文件与目录——移动或复制文件和目录(MoveAndCopyFiles)
- Cocoa stream 系列1---异步读取文件(Reading and Writing Files Asynchronously)
- drop tablespace XXX including contents and datafiles cascade constraints数据文件无法删除
- Streams and Files
- eagle产生制版文件(gerber files and bill of materials)
- 解析文件和流(Files ||Streams || DirectoryInfo类 ||FileInfo类)
- About Files and Directories(iOS文件与目录)
- UNIX高级环境编程(4)Files And Directories - umask、chmod、文件系统组织结构和链接
- UNIX高级环境编程(5)Files And Directories - 文件相关时间,目录文件相关操作
- 解析文件和流(Files ||Streams || DirectoryInfo类 ||FileInfo类)
- 如何阻止文件被iTunes和iCloud同步 How do I prevent files from being backed up to iCloud and iTunes?
- Notes for Apue —— chapter 4 Files and Directories(文件和目录)
- HTML5:多文件上传 Upload multiple files at once with HTML5, jQuery and PHP
- Creating and Opening Files(创建与打开文件)
- 利用webservice和.net技术上传和下载文件--Sending files in chunks with MTOM Web Services and .NET 2.0 from:http://www.codeproject.com/soap/MTO