文件和流(Files and Streams)之 Directory类

系统 1391 0
      .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使用的账号。

文件和流(Files and Streams)之 Directory类和File类


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论