zoukankan      html  css  js  c++  java
  • FSO组件之文件夹操作

    操作完驱动器,接着就是来操作文件夹了。其中包括:提取文件夹信息、创建文件夹、删除文件夹、复制文件夹、移动文件夹等。下面就具体来看。

    一、fso.GetFolder
    一看就明白,是提取文件夹了。那具体是提取哪个文件夹呢?后面肯定要跟一个文件夹的路径。提取出来了再来显示该文件夹相关信息呢?是不是有要具体提取下去。所以,看程序:
    1,getfldr.asp


    <%
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fldr = fso.GetFolder("c:\Program Files")
    Response.Write "父文件夹名字是:" & fldr & "<br>"

    If fldr.IsRootFolder = True Then
       Response.Write "该文件夹是一根文件夹" & "<br>"
    Else
       Response.Write "该文件夹不是根文件夹" & "<br>"
    End If

    Response.Write "驱动器名字是:" & fldr.Drive & "<br>"
    %>

     

    首先建立FSO组件的连接是必不可少的啦,然后Set fldr = fso.GetFolder("c:\Program Files")设定fldr对象被赋值,以作下面程序的引用。

    fldr.IsRootFolder即为判断该文件夹是否为一根文件夹,值为布尔值(true or false);fldr.Drive则显示该文件夹所在的驱动器号了。

    二、fso.CreateFolder
    下面比较让人激动的是通过ASP建立文件夹了,你可以在你的权力范围内任意位置建立任意文件夹。
    2,creatfldr.asp


    <%
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateFolder ("c:\cnbruce")
    Response.Write "文件夹名为" & fso.GetBaseName("c:\cnbruce")
    %>

     

    执行程序,应该发现C盘多出了cnbruce文件夹,fso.GetBaseName则是提取文件夹名。

    三、fso.DeleteFolder
    通过ASP可以建立了文件夹,则同样可以删除文件夹。

    3,delfldr.asp


    <%
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.DeleteFolder("c:\cnbruce")
    Response.Write "文件夹已删除"
    %>

     


    发现刚建立的cnbruce文件夹确实已被删除。

    那下面就采用一个通用程序来灵活应变下。

    4,mainflr.asp


    <%
    Sub CreateAFolder(file)
      Dim fso
      Set fso = CreateObject("Scripting.FileSystemObject")
      fso.CreateFolder(file)
      response.write "已经建立了"&file
    End Sub

    Sub DeleteAFolder(file)
      Dim fso
      Set fso = CreateObject("Scripting.FileSystemObject")
      fso.DeleteFolder(file)
      response.write "已经删除了"&file
    End Sub
    %>
    <%
    subname=request.form("submit")
    create=request.form("create")
    del=request.form("del")
    if subname<>"" then
      if create<>"" then
        call CreateAFolder(""&create&"")
      end if
      if del<>"" then
        call DeleteAFolder(""&del&"")
      end if 
    end if
    %>
    <form action="mainflr.asp" method="post">
    <input name="create">
    <input type="submit" value="建立" name="submit">
    </form>
    <hr>
    <form action="mainflr.asp" method="post">
    <input name="del">
    <input type="submit" value="删除" name="submit">
    </form>

     

    需要注意的是:删除并不会提示“确认要放入回收站”这项。这点你需要谨慎处理,特别是对你的系统文件夹。

    四、fso.MoveFolder
    主要作用是进行文件夹的移动,相当于剪切粘贴动作。

    5,movefldr.asp


    <%
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateFolder ("c:\cnbruce")
    fso.MoveFolder "c:\cnbruce", "C:\Program Files\"
    %>
    <a href="C:\Program Files\">查看cnbruce文件夹有没有移动过来</a>

     


    格式:fso.MoveFolder "被移动的文件夹","移动到的文件夹"

    本程序先是在C盘下建立了cnbruce文件夹,然后将其移动到C:\Program Files\文件夹下面。

    不过同样需要注意的是你的系统文件夹不能乱移动。

    五、fso.CopyFolder
    主要作用:将文件夹从某位置复制到另一位置。
    6,copyfldr.asp


    <%
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CopyFolder "c:\Program Files\cnbruce", "c:\"
    %>
    <a href="C:\">查看cnbruce文件夹有没有复制过来</a>

     

    该程序是建立在上一movefldr.asp的执行结果基础之上来完成复制到C盘根目录下的。(话比较长-_-!)

    当然,其拷贝也是将该文件夹包括里面所以子文件夹和文件统统拷贝。

    到最后再试着将c:\Program Files\cnbruce和c:\cnbruce两个文件夹进行删除掉吧。

    不过,继续提醒你:不要写错了,比如写成c:\Program Files,那你就惨了:这叫玩命,学ASP玩出心跳出来了。

    对文件夹的操作差不多了,是不是感到用处比较大?有训言:好东西是把双刃剑。正义和邪恶就只一线间,注意正规合理利用该组件。不过还有你放心的是,现在网站空间服务商对这权力已经限定得死死的了,你再怎么闹翻也不会冒泡的:)

    然后接下来就是更微妙的:FSO对文件的操作。


    FSO,正如UFO般令人激动、令人神往,当然更多的亦是让人欢喜让人忧。君不见某空间服务商广告:100MB空间只要60RMB/年,支持数据库,支持什么什么……一问不支持FSO,立马泄气。那FSO究竟是什么东西,它的力量又是如何巨大,其操作的原理又是怎的怎的呢?这次来个彻底的理解。

    首先,FSO是FileSystemObject的简称。当然也就是我们的俗称FSO组件了,该组件可以用来处理驱动器、文件夹以及文件。

    它可以检测并显示出系统驱动器的信息分配情况;还能够创建、改变、移动和删除文件夹,并能探测一些给定的文件夹是否存在,若存在,还能提取出该文件夹的信息,如名称、被创建或最后一次修改的日期,等等。FSO还使得对文件的处理变得很容易。

    一、fso.GetDrive

    正如其它组件的建立一样,FSO的引用也必须建立连接。


    Set fso=Server.CreateObject("Scripting.FileSystemObject")

     

    注意CreateObject的内部再也不是MSWC了,而是Scripting。
    那下面就可以通过fso来处理驱动器了。比如fso.GetDriveName提取驱动器名,fso.GetDrive同样提取标准驱动器名。比如:

    1,fso.asp


    <%Set fso=Server.CreateObject("Scripting.FileSystemObject")%>
    <%=fso.GetDriveName("d:")%><br>
    <%=fso.GetDrive("d:")%>

     

    你会发现GetDriveName("d:")就是“d:”,而GetDrive("d:")则为标准的“D:”,所以我们一般这样写fso.GetDrive(fso.GetDriveName(drvPath))来提取某个具体的驱动盘。

    二、drv.GetInfo
    上面已经把某个特定的驱动器提取了,那接着是不是提取该驱动盘的具体信息。

    2,drv.asp


    <%
    Set fso=Server.CreateObject("Scripting.FileSystemObject")
    Set drv=fso.GetDrive(fso.GetDriveName("d:"))
    %>
    该盘的空间大小:<%=drv.TotalSize%><br>
    该盘的剩余空间大小:<%=drv.FreeSpace%>

     

    以上只是提取的D盘驱动器的信息,来个通用的函数,继续分别测试自己的驱动吧。

    3,drvinfo.asp


    <%
    Function ShowDriveInfo(drvPath)
       Dim fso, drv, s
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
       s = "驱动盘" & drv & "的卷标是:"
       s = s & drv.VolumeName & "<br>"
       s = s & "总计空间:" & drv.TotalSize & "<br>"
       s = s & "剩余空间:" & drv.FreeSpace & "<br>"
       s = s & "文件类型:" & drv.DriveType & "<br>"
       s = s & "文件系统:" & drv.FileSystem
       Response.Write s
    End Function
    %>
    <%
    on error resume next
    whatpath=request.form("path")
    if whatpath<>"" then
    ShowDriveInfo(whatpath)
    end if%>
    <form action="drvinfo.asp" method="post">
    <input name="path">
    <input type="submit">
    </form>

     


    其中的drv.TotalSize和drv.FreeSpace返回的是字节数,我们可以用FormatNumber()函数处理下。比如FormatNumber(Drive.TotalSize/1024,0)得到一眼就知磁盘多少G的值。

    还有一个文件类型:drv.DriveType最多的时候是显示数值“2”,其实“2”就表示的“硬盘驱动器”,“1”表示“软盘驱动器”,“4”表示“光盘驱动器”……

    下面就用一个程序遍历显示自己机器上所有驱动器的信息

    4,showall.asp


    <%
    Function tran(Driver)
    Select Case Driver
    Case 0: tran="设备无法识别"
    Case 1: tran="软盘驱动器"
    Case 2: tran="硬盘驱动器"
    Case 3: tran="网络硬盘驱动器"
    Case 4: tran="光盘驱动器"
    Case 5: tran="RAM虚拟磁盘"
    End Select
    End Function
    set fso=Server.CreateObject("Scripting.FileSystemObject")
    %>

    <table border=1 width="100%">
    <tr>
    <td>盘符</td>
    <td>类型</td>
    <td>卷标</td>
    <td>总计大小</td>
    <td>可用空间</td>
    <td>文件系统</td>
    <td>序列号</td>
    <td>是否可用</td>
    <td>路径</td>
    </tr>
    <%
    on error resume next
    For each drv in fso.Drives
        Response.Write "<tr>"
        Response.Write "<td>" & drv.DriveLetter & "</td>"
        Response.write "<td>" & tran(drv.DriveType) & "</td>"
        Response.write "<td>" & drv.VolumeName & "</td>"
        Response.write "<td>" & FormatNumber(drv.TotalSize / 1024, 0)& "</td>"
        Response.write "<td>" & FormatNumber(drv.Availablespace / 1024, 0) & "</td>"
        Response.write "<td>" & drv.FileSystem & "</td>"
        Response.write "<td>" & drv.SerialNumber & "</td>"
        Response.write "<td>" & drv.IsReady & "</td>"
        Response.write "<td>" & drv.Path & "</td>"
        Response.Write "</tr>"
    Next
    set fs=nothing
    %>
    </table>

     

    恩,是不是很神气?那你可以对自己的机器调试,然后上传到自己的空间去调试,你会发现服务商会你进行了些设置:)
    当然更神的还在后面面,比如对文件夹,对文件的操作(包括添加、修改和删除)。ps:你对驱动器是不能轻易添加删除的:) 

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    GNU make manual 翻译(九十九)
    GNU make manual 翻译( 九十五)
    Shell的 for 循环小例子
    makefile中对目录遍历的小例子
    GNU make manual 翻译(九十三)
    GNU make manual 翻译( 一百)
    GNU make manual 翻译( 九十七)
    GNU make manual 翻译( 九十八)
    mapserver4.8.3 的readme.win32的中文翻译文件
    遥控器编程
  • 原文地址:https://www.cnblogs.com/Athrun/p/664903.html
Copyright © 2011-2022 走看看