2

unzip/zip クラスを使用しようとしています。アップロード後にzipファイルを解凍する必要があります。intSeconds 値ごとに「コントローラ」関数をチェックするように「スリープ」関数を変更し、ターゲット フォルダのファイル数をチェックする「コントローラ」関数を追加しました。以下にコード部分を示します。

zip ファイルはこの関数で正常に解凍されますが、ページの進行は終了しません。この機能を使用するには、iis を再起動する必要があります。

元のコード:クラス CompressedFolder

<%
    Set objShell = CreateObject("Shell.Application")
    Set objFso   = CreateObject("Scripting.FileSystemObject")

    Function ExtractAll(strZipFile, strFolder)
        If Not objFso.FolderExists(strFolder) Then objFso.CreateFolder(strFolder)
        intCount = objShell.NameSpace(strFolder).Items.Count
        Set colItems = objShell.NameSpace(strZipFile).Items
        objShell.NameSpace(strFolder).CopyHere colItems, 8
        Sleep 5000,strFolder,intCount + colItems.Count
    End Function        

    function controller(path,filesCountMust)
       dim stat:stat=False
       set fold = objFso.getFolder(path)
       set files = fold.files
       if filesCountMust=files.count then
          stat=True
       end if
       set files = nothing 
       set fold = nothing
       controller=stat
    end function

    Sub Sleep(intSeconds,path,filesCountMust)
        dblSeconds = intSeconds / 1000
        If dblSeconds < 1 Then dblSeconds = 1
        dteStart = Now()
        dteEnd = DateAdd("s", dblSeconds, dteStart)  
        do While dteEnd>=Now()
           if dteEnd=Now() then
              if controller(path,filesCountMust)=true then 
                 exit do
              else
                 Sleep intSeconds,path,filesCountMust
              end if
           end if
        loop
    End Sub

    Set objShell = Nothing
    Set objFso   = Nothing

%>

4

2 に答える 2

1

試したことはありませんが、同じ検索結果でこのスタック オーバーフローの質問と github ソリューションを見つけたので、これはあなたの問題の解決策として良いショットかもしれないと思いました.

https://github.com/rcdmk/aspZip

于 2014-11-06T22:57:07.783 に答える