Recomendado: Dicas para objetos de erro ASP No VBScript, existe um retomado de erro no erro que faz com que o intérprete do script ignore os erros de tempo de execução e continue a execução do código do script. Em seguida, o script pode verificar o valor da propriedade Err.Number para determinar se ocorreu um erro. Se ocorrer um erro, um valor diferente de zero será retornado. No ASP 3.0, você também pode usar no erro 0 para "voltar para" o padrão
- '==================================
- 'Arquivo 1
- 'Pack.asp
- 'Altere cpathName esta variável
- 'Um arquivo data.xml será gerado no diretório atual
- 'Carregar data.xml e arquivo 2 (install.asp) para o diretório da web root
- 'Execute install.asp descompacagem
- 'Exclua manualmente os dois arquivos acima
- '==================================
- <%OptionExplicit%>
- <%OnErrorReSumenext%>
- <%
- Server.scriptTimeout = 99999999
- DimcPathName
- Dimstartime, Endtime
- 'Mude o caminho para a pasta para ser embalado aqui
- Cpathname = f: websymr
- startTime = timer ()
- functionbianli (caminho)
- Dimdoc
- objeto dimfso'fso
- objeto de pasta Dimobjfolder '
- A coleção de subpasta da DIMOBJSUBFOLDERS
- O objeto subpasta da DIMOBJSUBFOLDER
- Coleção de arquivos de Dimobjfiles
- objeto de arquivo DIMOBJFILE
- DIMOBJSTREAM
- DIMPATHNAME, Textstream, pp, xFolder, xfpath, xfile, xpath, xstream
- setfso = server.createObject (script.filesystemoBject)
- setObJFolder = fso.getFolder (caminho) 'Crie objeto de pasta
- Response.WritePath
- Response.flush
- SetDoc = server.createObject (msxml2.domdocument)
- doc.loadserver.mappath (data.xml)
- doc.async = false
- 'Escreva para cada caminho de pasta
- setXFolder = doc.SelectSinglenode (// zblog) .appendChild (doc.createElement (pasta))
- Setxfpath = xFolder.appendChild (doc.createElement (caminho))
- Xfpath.Text = Substitua (Path, CPathName,)
- setObjfiles = objFolder.Files
- foreachobjfileinobjfiles
- Response.Write
- ----
- pp = path && objfile.name
- Response.Writep &
- Response.flush
- '=====================================================================
- 'O caminho para o arquivo e o conteúdo do arquivo
- setxfile = doc.selectsinglenode (// zblog) .appendChild (doc.createElement (arquivo))
- SetxPath = xfile.appendChild (doc.createElement (caminho))
- XPath.Text = Substitua (pp, cpathname,)
- 'Crie um fluxo de arquivos para ler o conteúdo do arquivo e escrevê -lo no arquivo XML
- SetObjstream = server.createObject (adodb.stream)
- objstream.type = 1
- objstream.open ()
- objstream.loadfromfile (pp)
- objstream.Position = 0
- SetXstream = xfile.appendChild (doc.createElement (stream))
- XStream.SetAttributexmlns: dt, urna: schemas-microsoft-com: datatypes
- 'O conteúdo do arquivo é armazenado em dois sistemas
- Xstream.datatype = bin.base64
- Xstream.nodetypedValue = objStream.read ()
- setobjstream = nada
- setxPath = nada
- setXstream = nada
- setxfile = nada
- '=====================================================================
- próximo
- Response.write <p>
- doc.SaveServer.mappath (data.xml)
- setxfpath = nada
- setXFolder = nada
- setDoc = nada
- 'Criou objeto da subpasta
- setObJSubFolders = objFolder.SubFolders
- 'Chame as subpastas de atravessar recursivamente
- foreachobjsubFolderinObJSubFolders
- PathPathName = PATH ++ ObjSubFolder.Name
- Bianli (nome do caminho)
- próximo
- setObjFolder = nada
- SetoBJSubFolders = nada
- setfso = nada
- Função final
- Dimdoc, Objpi
- 'Crie um arquivo XML vazio para se preparar para escrever no arquivo
- SetDoc = server.createObject (msxml2.domdocument)
- doc.async = false
- setobjpi = doc.createprocessingInstruction (xml, versão = '1.0'Encoding =' utf-8 ')
- doc.insertbeforeobjpi, doc.childnodes (0)
- doc.appendchild (doc.createElement (z-blog))
- doc.SaveServer.mappath (data.xml)
- setobjpi = nada
- setDoc = nada
- Bianli (cpathname)
- EndTime = Timer ()
- %>
- Tempo de execução da página: <%= formatNumber ((Endtime-startime), 3)%> segundos
- '===============================================
- 'Arquivo 2
- 'Install.asp
- 'Este arquivo é alterado do arquivo de instalação do Z-Blog
- '===============================================
- <%@CodePage = 65001%>
- <%OptionExplicit%>
- <%OnErrorReSumenext%>
- <%Response.CharSet = UTF-8%>
- <html>
- <head>
- <title> Programa de descompacagem de arquivo </title>
- </head>
- <Body>
- <textarename = contentCols = 90Rows = 20Style = borda: 0px; Overflow: Auto; largura de borda: 0px; largura: 100%; cor de fundo:#e8f3ff; rolagem = auto>
- <%
- DimstrlocalPath
- 'Pegue o caminho físico para a pasta atual
- strlocalPath = esquerda (request.Servervariables (path_translated), instrrev (request.servervariables (path_translated),)))
- DIMSTRDBPATH
- DIMOBJXMLFILE
- Dimobjnodelist
- DIMOBJFSO
- DIMOBJSTREAM
- Dimi, j
- Setobjxmlfile = server.createObject (Microsoft.xmldom)
- objxmlfile.load (server.mappath (data.xml))
- Ifobjxmlfile.readyState = 4Then
- Ifobjxmlfile.parseerror.errorCode = 0Then
- Setobjnodelist = objxmlfile.documentElement.SelectNodes (// pasta/caminho)
- Setobjfso = createObject (script.filesystemoBject)
- j = objnodelist.length-1
- Fori = 0toj
- Ifobjfso.Polderexists (strlocalpath & objnodelist (i) .text) = falsethen
- objfso.createfolder (strlocalpath & objnodelist (i) .text)
- Endif
- Response.WriteCreate Directory & ObjNodelist (i) .Text & Vbcrlf
- Response.flush
- Próximo
- SetObjnodelist = objxmlfile.documentElement.SelectNodes (// file/caminho)
- j = objnodelist.length-1
- Fori = 0toj
- SetObjstream = CreateObject (adodb.stream)
- Sembjstream
- .Type = 1
- .Abrir
- .WriteObjNodelist (i) .Nextsibling.NODETYPEDVALUE
- .SavetofilestlocalPath & Objnodelist (i) .Text, 2
- Response.Write Release File & Objnodelist (i) .Text & Vbcrlf
- Response.flush
- .Fechar
- ENDWITH
- Setobjstream = nada
- Próximo
- Endif
- Endif
- %>
- </sexttarea>
- <%Response.write <cript> alert ('arquivo despacado completo!'); </script>%>
Compartilhar: Coleção útil de funções no desenvolvimento de ASP (1) Uma coleção de funções úteis no desenvolvimento de ASP é bastante útil! Espero que todos os mantenham! % '*********************************************************