zoukankan      html  css  js  c++  java
  • 无法声明静态类型“System.IO.Directory”的变量

    无法声明静态类型“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()处的值。然后达到自己想要的效果。

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

  • 相关阅读:
    The formatter threw an exception while trying to deserialize the message in WCF
    通过Web Deploy方式部署WCF
    The Managed Metadata Service or Connection is currently not available
    How to create Managed Metadata Column
    冒泡算法
    asp.net core 实战项目(一)——ef core的使用
    Vue学习笔记入门篇——安装及常用指令介绍
    Vue学习笔记入门篇——数据及DOM
    Vue学习笔记目录
    Chart.js在Laravel项目中的应用
  • 原文地址:https://www.cnblogs.com/hateyoucode/p/1648377.html
Copyright © 2011-2022 走看看