写写程序,一种成就的感觉

写写程序,一种成就的感觉

导航

无法声明静态类型“System.IO.Directory”的变量

Posted on 2010-01-15 10:59  hateyoucode  阅读(4954)  评论(0编辑  收藏  举报

无法声明静态类型“System.IO.Directory”的变量

以前看到一个教程,估计是老版的.net下写的,有用到Directory 实例化变量,类似 Directory strDir = null;这在新版的.net中是不被允许的。因为Directory是静态类型的变量了。正如错误信息所提示的:“无法声明静态类型“System.IO.Directory”的变量”,“无法创建静态类“System.IO.Directory”的实例”,一切皆因为System.IO.Directory是静态的类型,不懂什么是静态类型的,去补一下基础。

你需要做的就是类似下面这样的操作string[] strDrivers = Directory.GetLogicalDrives();

直接用类名加上属性或方法就可以达到要求了。

string[] strDrivers = Directory.GetLogicalDrives();

就是取得驱动盘符列表。

 

 

 

 

asp.net列出当前文件夹目录

上一篇文章说到用asp.net列出当前驱动盘目录,这一篇文章要说的是列出指定文件夹下面的文件夹名与文件名,在这样的基础上,就可以遍历指定文件夹的子目录,文件等。

本文主要用到GetDirectories方法和GetFiles()方法。都包含在System.IO命名空间中。

源码如下:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        string[] strDrivers = Directory.GetLogicalDrives();
        string strResult = "";

        try
        {
                          
                strResult += "<h3>文件夹目录:</h3><ul>";
               
                string[] strDir1 = Directory.GetDirectories(strDrivers[0]);
                for (int i = 0; i < strDir1.Length; i++)
                {
                    strResult += "<li>" + strDir1[i] + "<br/>";
                }
                strResult += "</ul>";

                strResult += "<h3>文件名:</h3><ul>";
                string[] strFile = Directory.GetFiles(strDrivers[0]);
                for (int i = 0; i < strFile.Length; i++)
                {
                    strResult += "<li>" + strFile[i] + "<br/>";
                }
                strResult += "</ul>";
                Label1.Text = strResult;

        }catch(Exception e1)
        {
            Label1.Text ="错误:" + e1.ToString();
        }
         
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>asp.net列出C盘文件夹目录与文件</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
   
    </div>
    </form>
</body>
</html>

说明:此处使用strDrivers[0]来做要取的目录,在没有软驱的情况下,取到的才能够是C盘的子目录与文件,当然,你应该能够修改GetDirectories()处的值。然后达到自己想要的效果。

有本文的甚而,修改一下,就可以遍历出当前目录与子目录的所有文件与文件夹。