• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發(fā)教程 > 詳細頁面

        ASP 3.0高級編程(二10)

        ASP 3.0高級編程(二10)

        更新時間:2022-05-10 文章作者:未知 信息來源:網(wǎng)絡 閱讀次數(shù):

        5.4.1 FileSystemObject對象成員概要
               FileSystemObject對象提供一個屬性和一系列方法,可用它們來操縱FileSystemObject對象實現(xiàn)的一些從屬對象。這里提供了全部的內(nèi)容概要,然后介紹每一個從屬對象。
        1.  FileSystemObject的屬性
        FileSystemObject對象只有一個屬性,它用于得到當前機器上的所有有效驅動器的列表,如表5-4所示:
        表5-4  FileSystemObject對象的屬性及說明
        屬 性
        說 明

        Drivers
        返回本地計算機可用的驅動器列表。

        2.  FileSystemObject的方法
        FileSystemObject對象提供了使用從屬對象的一系列方法,從屬對象包括Drive、Folder和File等對象。它也實現(xiàn)了用于TextStream對象的兩個方法:CreateTextFile和OpenTextFile。根據(jù)所使用的對象的類型,將方法劃分為三類。
        (1)    與驅動器有關的方法
        與驅動器有關的方法如表5-5所示:
        表5-5 與驅動器有關的方法及說明
        方 法
        說 明

        DriveExists(drivespec)
        如果在drivespec中指定的驅動器存在,則返回True,否則返回False。drivespec參數(shù)可以是一個驅動器字母,或者是文件、文件夾的完整絕對路徑

        GetDrive(drivespec)
        返回drivespec指定的驅動器所對應的Drive對象。drivespec可以包含冒號、路徑分隔符或者是網(wǎng)絡共享名,即:“C”、“C:”、“C:\”及“\\machine\sharename”

        GetDriveName(drivespec)
        用字符串返回drivespec指定的驅動器的名稱。drivespec參數(shù)必須是文件或文件夾的絕對路徑,或者僅僅是驅動器字母,例如:“c:”或“c”

        (2)    與文件夾有關的方法
        與文件夾有關的方法如表5-6所示:
        表5-6  與文件夾有關的方法及說明
        方 法
        說 明

        BuildPath(path,name)
        在已有的路徑path上增添名字為name的文件或文件夾,如果需要,則增添路徑分隔符’\’

        CopyFolder(source,destination,overwrite)
        從指定的源文件夾source(可以包含通配符)中復制一個或多個文件夾到指定的目標文件夾destination,包含了源文件夾中的所有文件。如果source包含通配符或destination末尾是路徑分隔符(‘\’),那么認為destination是要放置源文件夾的拷貝的文件夾。否則的話,認為destination是要創(chuàng)建的新文件夾的路徑名。如果destination文件夾已經(jīng)存在且overwrite參數(shù)設置為False,將產(chǎn)生錯誤,缺省的overwrite參數(shù)是True

        CreateFolder(foldername)
        創(chuàng)建一個路徑名為foldername的文件夾。如果foldername已經(jīng)存在將產(chǎn)生錯誤

        DeleteFolder(folderspec,force)
        刪除由folderspec指定的一個或多個文件夾(可以在路徑的最后部分包含通過配符)及文件夾中的所有內(nèi)容。如果可選的force參數(shù)設置為true,那么即使文件夾包含的文件具有只讀屬性,也將刪除該文件夾。缺省的force參數(shù)是False

        FolderExist(folderspec)
        如果folderspec指定的文件夾存在則返回True,否則返回False。folderspec參數(shù)可以包含文件夾的絕對或相對路徑,或者僅僅是當前文件夾中看到的文件夾名

        GetAbsolutePathName(pathspec)
        返回明確指定文件夾的路徑,其中要考慮到當前文件夾的路徑。例如,如果當前文件夾是“c:\docs\sales\”,而pathspec是“jan”,返回的字符是“c:\docs\sales\jan”。通配符、”..”和”\\”路徑操作符都是可以接受的

        GetFolder(folderspec)
        返回folderspec指定的文件夾對應的Folder對象。folderspec可以是文件夾的相對的或絕對的路徑

        GetParentFolderName(pathspec)
        返回pathspec文件或文件夾的上一級文件夾。不檢驗該文件夾是否存在

        GetSpecialfolder(folderspec)
        返回一個特定的Windows文件夾相對應的Folder對象。參數(shù)folderspec的允許值是WindowsFolder(0)、SystemFolder(1)和TemporaryFolder(2)

        MoveFolder(source,destination)
        將source指定的一個或多個文件夾移動到destination指定的文件夾。在source里可以包含通配符,但在destination中不行。如果source包含通配符或destination末尾是路徑分隔符(‘\’),則認為destination是要放置源文件夾的文件夾,否則認為它是一個新文件夾的完整路徑和名字。如果目的文件夾destination已經(jīng)存在則產(chǎn)生錯誤

        (3)    與文件有關的方法
        與文件有關的方法如表5-7所示:
        方 法
        說 明

        CopyFile(source,destination,
        overwrite)
        將source(可包含通配符)指定的一個或多個文件復制到指定的目標文件夾destination。如果source包含通配符或destination末尾是路徑分隔符(‘\’),那么認為destination是文件夾。否則認為destination為一新文件的完全路徑和名稱。如果目標文件夾已經(jīng)存在且overwrite參數(shù)設置為False,將產(chǎn)生錯誤。缺省的overwrite參數(shù)是True

        CreateTextFile(filename,overwrite,
        unicode)
        用指定的文件名filename在磁盤上創(chuàng)建一個新的文本文件,并返回與其對應的TextStream對象,如果可選的overwrite參數(shù)設置為True,則覆蓋同一路徑下已有的同名文件。缺省的overwrite參數(shù)是False。如果可選的unicode參數(shù)設置為True,則該文件的內(nèi)容將存儲為Unicode文本,缺省的unicode參數(shù)是False

        DeleFile(filespec,force)
        刪除由filespec指定的一個或多個文件(可以在路徑的最后部分包含通配符)。如果可選的force參數(shù)設置為true,那么也刪除具有只讀屬性的文件。缺省的force參數(shù)是False

        FileExists(filespec)
        如果filespec指定的文件存在則返回True,否則返回False。filespec參數(shù)可以包含文件的絕對路徑或相對路徑,或者是當前文件夾中的文件名

        GetBaseName(filespec)
        返回filespec指定的文件的名稱,即包含文件路徑但去掉了文件的擴展名

        GetExtensionName(filespec)
        返回filespec指定的文件的擴展名

        GetFile(filespec)
        返回filespec指定的文件所對應的File對象。可以指定文件的相對或絕對路徑

        GetFileName(pathspec)
        返回pathspec指定的文件的路徑或文件名,如果沒有文件名就返回最后的文件夾名。不檢查該文件或文件夾是否存在

        GetTempName()
        返回一個隨機產(chǎn)生的文件名,用于完成運算所需的臨時文件或文件夾

        MoveFile(source,destination)
        將source指定的一個或多個源文件移動到destination指定的目的文件夾。在source里可以包含通配符,但destination不行。如果source包含通過配符或destination末尾是路徑分隔符(‘\’),那么認為destination是一文件夾。否則,認為destination是一新文件夾的完整路徑和名稱。如果目的文件夾已經(jīng)存在則產(chǎn)生錯誤

        OpenTextFile(filename,iomode,create,
            format)
        創(chuàng)建一個名叫做filename的文件,或打開一個現(xiàn)有的名為filename的文件,并且返回一個與其相關的TextStream對象。filename參數(shù)可以包含絕對或相對路徑。iomode參數(shù)指定了所要求的訪問類型。允許的數(shù)值是ForReading(1)(缺省)、ForWriting(2)、ForAppending(8)。當寫入或追加到一個不存在的文件時,如果create參數(shù)設置為true,就將創(chuàng)建一個新文件。缺省的create參數(shù)是False。format參數(shù)說明對文件讀或寫的數(shù)據(jù)格式。允許數(shù)值是:TristatetFalse(0)(缺省),按照ASCII格式打開;TristatetTrue(-1),按照Unicode格式打開;TristateDefault(-2),用系統(tǒng)缺省格式打開

               Unicode文件使用兩個字節(jié)標識每個字符,取消了ASCII字符最多256個的限制。

        5.4.2 使用驅動器
               下面是使用FileSystemObject對象的簡單例子,它使用DriveExists方法得到現(xiàn)有的驅動器字母的列表:
               ‘ In VBScript
               Set objFSO = Server.CreateObject(“Scripting.FileSystemObject”)
               For intCode = 65 To 90                ‘ANSI codes for ‘A’ to ‘Z’
                      strLetter = Chr(intCode)
                      If objFSO.DriveExists(strLetter) Then
                             Response.Write “Found drive “ & strLetter & “:<BR>”
                      End If
               Next
               或用JScript:
               // In Jscript
               var objFSO = Server.CreateObject(‘Scripting.FileSystemObject’);
               for (var intCode = 65; intCode <= 90; intCode++) {    //ANSI codes for ‘A’ to ‘Z’
                      strLetter = String.formCharCode(intCode);
                      If (objFSO.DriveExists(strLetter))
                             Response.Write (‘Found drive ‘ + strLetter + “:<BR>”);
               }
               這兩個程序段的運行結果是相同的,如圖5-9所示:


        圖5-9  驅動器列表
               這一頁面為driveexists_vb.asp,由本書的示例文件提供。
        1.  Drive對象
        正如已經(jīng)看到的,F(xiàn)ileSystemObject對象包含一個屬性——Drives,它返回一個包括本地計算機上所有可用驅動器的集合。
        Drives集合里的每個條目是一個Drive對象。Drive對象的屬性如表5-8所示:
        表5-8  Drive對象的屬性及說明
        屬 性
        說 明

        AvailableSpave
        考慮了帳戶定額和/或其他限制,返回驅動器上對于該用戶可用的空間的大小

        DriveLetter
        返回驅動器的字母

        DriveType
        返回驅動器的類型。返回值可以是Unknown(0)、Removeable(1)、Fixed(2)、Network(3)、CDRom(4)和RamDisk(5)。然而需要注意的是當前版本的scrrun.dll不支持預定義常數(shù)Network,必須使用十進制3來代替

        FileSystem
        返回驅動器文件系統(tǒng)的類型。返回值包括“FAT”、“NTFS”和“CDFS”

        FreeSpace
        返回驅動器上可用剩余空間的總量

        IsReady
        返回一個布爾值表明驅動器是否已準備好

        Path
        返回一個由驅動器字母和冒號組成的驅動器路徑,即“C:”

        RootFolder
        返回代表的驅動器根目錄文件夾的Folder對象

        SerialNumber
        返回一個用于識別磁盤卷的十進制的序列號

        ShareName
        如果是一個網(wǎng)絡驅動器,返回該驅動器的網(wǎng)絡共享名

        TotalSize
        返回驅動器的總容量(以字節(jié)為單位)

        VolumeName
        設定或返回本地驅動器卷名

               因此,通過使用Drives集合里的Drive對象,可以在服務器上產(chǎn)生一個驅動器列表,與通過檢查每個可能的驅動器字母來判別驅動器是否存在的方法相比,效率更高。我們也可以得到關于該驅動器的信息。在VBScript里,代碼如下:
        ' In VBScript:
        ' create a FileSystemObject instance
        Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
        ' create a Drives collection
        Set colDrives = objFSO.Drives
        ' iterate through the Drives collection
        For Each objDrive in colDrives

          Response.Write "DriveLetter: <B>" & objDrive.DriveLetter & "</B>&nbsp; &nbsp;"
          Response.Write "DriveType: <B>" & objDrive.DriveType
          Select Case objDrive.DriveType
            Case 0: Response.Write " - (Unknown)"
            Case 1: Response.Write " - (Removable)"
            Case 2: Response.Write " - (Fixed)"
            Case 3: Response.Write " - (Network)"
            Case 4: Response.Write " - (CDRom)"
            Case 5: Response.Write " - (RamDisk)"
          End Select
          Response.Write "</B>&nbsp; &nbsp;"

        If objDrive.DriveType = 3 Then
            If objDrive.IsReady Then
              Response.Write "Remote drive with ShareName: <B>" & objDrive.ShareName & "</B>"
            Else
        Response.Write "Remote drive - <B>IsReady</B> property returned_
        <B>False</B><BR>"
            End If
          Else If objDrive.IsReady then
            Response.Write "FileSystem: <B>" & objDrive.FileSystem & "</B>&nbsp; &nbsp;"
            Response.Write "SerialNumber: <B>" & objDrive.SerialNumber & "</B><BR>"
        Response.Write "Local drive with VolumeName: <B>" & _
        objDrive.VolumeName & "</B><BR>"
        Response.Write "AvailableSpace: <B>" & FormatNumber( _
        objDrive.AvailableSpace / 1024, 0) & "</B> KB&nbsp; &nbsp;"
        Response.Write "FreeSpace: <B>" & FormatNumber( _
        objDrive.FreeSpace / 1024, 0) & "</B> KB&nbsp; &nbsp;"
        Response.Write "TotalSize: <B>" & FormatNumber(_
        objDrive.TotalSize / 1024, 0) & "</B> KB"
          End if  
          Response.Write "<P>"
          End if
        Next
               注意,不能用預定義常數(shù)Network比較驅動器的DriveType屬性,因為(至少在scrrun.dll的當前版本中)在類型庫中省略了Network常數(shù),因此不再作為公用的常數(shù)使用。
        在JScript中,該程序是:
        // In JScript:
        // create a FileSystemObject instance
        var objFSO = Server.CreateObject('Scripting.FileSystemObject');
        // create a Drives collection
        var colDrives = new Enumerator(objFSO.Drives);

        for (; !colDrives.atEnd(); colDrives.moveNext()) {
          objDrive = colDrives.item();
          Response.Write('DriveLetter: ' + objDrive.DriveLetter + '<BR>');
          Response.Write('DriveType: ' + objDrive.DriveType + '<BR>');

          if (objDrive.DriveType == 3)
            if (objDrive.IsReady)
              Response.Write('Remote drive with ShareName: ' +
                             objDrive.ShareName + '<BR>')
            else
              Response.Write('Remote drive - IsReady property returned False<BR><BR>');
            else if (objDrive.IsReady) {
              Response.Write('Local drive with VolumeName: ' +
                            objDrive.VolumeName + '<BR>');
            Response.Write('FileSystem: ' + objDrive.FileSystem + '<BR>');
            Response.Write('SerialNumber: ' + objDrive.SerialNumber + '<BR>');
            Response.Write('AvailableSpace: ' + objDrive.AvailableSpace + ' bytes<BR>');
            Response.Write('FreeSpace: ' + objDrive.FreeSpace + ' bytes<BR>');
            Response.Write('TotalSize: ' + objDrive.TotalSize + ' bytes<P>');
        }
        }
               在系統(tǒng)上運行這段程序以前有一點要注意。如果在A驅動器里沒有磁盤,或CD-ROM驅動器里沒有光盤,將得到一個錯誤提示:“Disk Not Ready”。除了DriveLetter屬性和DriveType屬性外,在使用其他屬性和方法前,通過檢查每個驅動器的IsReady屬性,可以保護該頁面。
               當在服務器上運行以上VBScript代碼時,運行結果如圖5-10所示。這一頁面為drivescollection_vb.asp,來自本書提供的示例文件。


        圖5-10  驅動器詳細列表
        2.  文件系統(tǒng)定位
        FileSystemObject的幾個方法可用于得到其他對象的引用,因此可以在服務器的文件系統(tǒng)和任何網(wǎng)絡驅動器中定位。事實上,在ASP代碼里使用的所有對象或組件中,除了ActiveX Data Object組件,F(xiàn)ileSystemObject對象很可能是最復雜的對象之一。
        這種復雜性是由于對如何訪問文件系統(tǒng)的不同部分,要求有極高的靈活性。例如,可以從FileSystemObject向下通過使用各種從屬對象定位一個文件。其過程是從Drives集合開始,到一個Drive對象,再到驅動器的根Folder對象,然后到子Folder對象,再到文件夾的Files集合,最后到集合內(nèi)的File對象。
        另外,如果已知要訪問的驅動器、文件夾或文件。可以直接對其使用GetDrive、GetFolder、GetSpecialFolder和GetFile方法。圖5-11有助于理解所有文件系統(tǒng)定位相關的組件、對象、方法和屬性之間的關系。

        圖5-11 文件系統(tǒng)定位關系

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 在线观看免费污视频| 日韩人妻一区二区三区免费| 最近最新的免费中文字幕| 91情国产l精品国产亚洲区| 国产成人久久AV免费| 亚洲AV无码久久精品成人| 中文无码成人免费视频在线观看| 亚洲色婷婷一区二区三区| 97超高清在线观看免费视频| 国产亚洲精品资源在线26u| 免费人成网站在线观看不卡| 亚洲人成亚洲精品| 亚洲国产精品免费在线观看| 国产色在线|亚洲| 国产成人免费永久播放视频平台| 老司机午夜在线视频免费| 一本色道久久综合亚洲精品高清| 国产一级高青免费| 亚洲黄色在线视频| 成全高清视频免费观看| 粉色视频成年免费人15次| 国产成人亚洲影院在线观看| 久操视频免费观看| 亚洲 日韩经典 中文字幕| 亚洲成A∨人片天堂网无码| A级毛片成人网站免费看| 亚洲毛片在线免费观看| 午夜一级免费视频| 精品国产免费一区二区三区| 亚洲色欲或者高潮影院| 日本一道在线日本一道高清不卡免费| 一区免费在线观看| 91亚洲自偷手机在线观看| 日本二区免费一片黄2019| 久久国产一片免费观看| 久久久久亚洲av无码专区导航 | 国产国产人免费视频成69堂| 亚洲a∨国产av综合av下载| 亚洲乱码精品久久久久..| 精品久久久久国产免费| 99精品免费视频|