Abaixo está um tutorial detalhado sobre a operação do sistema de arquivos FSO que o editor compartilhou com você. Amigos interessados, vamos aprender sobre isso com o editor!
Implementar funções:
A lista de diretórios do arquivo (pasta) fornece a pesquisa de arquivos e pastas abaixo do diretório.
Redação, criação e exclusão de arquivos fornecem a operação de edição e exclusão de arquivos (pastas)
Criar pastas/arquivos está definido para criar pastas (arquivos).
Carregar arquivos Você pode simular uploads FTP, com tamanho e tipo ilimitados de arquivo.
Se você estiver interessado, não terá consequências se tiver algum problema. Aqui eu digo que não tenho muito tempo para navegar na Internet e muitas vezes não consigo cuidar disso. Vi que as pessoas costumam fazer essa pergunta recentemente, então publiquei, esperando que fosse útil.
upfso.asp // Control Arquivos carregados
A cópia do código é a seguinte:
@importurl ("admin.css");
Server.scriptTimeout = 999
'UP_FILETYPE = "RAR, ZIP, SWF, JPG, PNG, GIF, DOC, TXT, CHM, PDF, ACE, JPG, MP3, WMA, WMV, BMP"
IfRequest.QueryString ("sim") = "upload" então
Path = Trim (request ("caminho"))
'Response.Write (Path & "---")
'Response.end
DIMFSO, FSOISOK, F_FILENAME, MODE
F_filename = Trim (request ("nn")))
MODE = Killint (Trim (solicitação ("Modo")), 0,0,2)
Fsoisok = 1
Setfso = server.createObject ("scripting.filesystemobject")
IFERR0THEN
Err.clear
Fsoisok = 0
Endif
Dimd_name, f_name
IffSOISOK = 1THEN
Ifinstr (1, caminho, ":/") = 0hen
caminho = substituir (lcase (caminho), "/", "/")
caminho = server.mappath (caminho)
caminho = substituir (caminho e "/", "//", "/")
Outro
caminho = substituir (lcase (caminho), "/", "/")
caminho = substituir (caminho e "/", "//", "/")
Endif
ifnotfso.Polderexists (Path) então
Response.Write "A pesquisa de caminho básico falhou, retornar" = '#000080'>
resposta.END
Endif
Endif
Setfso = nada
Dimfileup
Setfileup = newupload_file
FileUp.getDate (-1)
Dimf_fileType, f_file
Setf_file = fileup.file ("arquivo")
Iflen (f_filename)
Iflen (f_filename)
Response.Write ("Arquivo vazio, por favor retorne") = '#000080'> = 'JavaScript: History.go (-1);'>
resposta.END
Endif
'F_fileType = ucase (f_file.fileExt)
'Iff_file.filesize> 90000Then
'Response.Write ("O tamanho excede o limite") = 'JavaScript: History.go (-1);'>
'Exitsub
IfisValidFileName (f_filename) = falsethen
Response.Write ("Nome incorreto") = '#000080'> = 'JavaScript: History.go (-1);'>
Outro
Dimfileisexistas
Setfso = server.createObject ("scripting.filesystemobject")
Fileisexists = fso.fileExists (Path & f_filename)
Iffileisexists = TrueArndMode1Then
fso.DeleteFile (Path & f_filename)
Response.Write ("O arquivo já existe, foi excluído;") = '#000080'>
F_FILE.SAVETOFILEPATH & F_FILENAME
Response.Write (" Clique aqui para continuar fazendo o upload:" & Path & f_filename & " = '#000080'> ")
ElseiffileExists = TrueandMode = 1Then
Response.Write ("O arquivo já existe, você optou por não substituir") = '#000080'>
Outro
F_FILE.SAVETOFILEPATH & F_FILENAME
Response.Write (" Clique aqui para continuar fazendo o upload:" & Path & f_filename & " = '#000080'> ")
Endif
Endif
Setf_file = nada
Setfileup = nada
Outro
DIMPATH, NN, MMODE
nn = acabamento (request ("nn")))
mmode = Trim (request ("modo")))
caminho = substituir (request ("caminho"), "//", "/")
IfPath = "" thenPath = "../ newup/"
Response.Write (" ")
Endif
'Nome da experiência
FunctionIsValidFilename (File_Name)
IsValidFileName = false
Dimre, REST
Setre = newRegexp
re.IGNORECASE = true
re.global = true
re.pattern = "[^_/. a-za-z/d]"
rest = re.Replace (file_name, "")
Iffile_name = restrThenisValidFilename = true
Setre = nada
Função final
%>
upload.asp // Classe de upload
A cópia do código é a seguinte:
DimoupFilEstream
Classupload_file
Dimform, arquivo, err
Privatesubclass_initialize
Err = -1
Endsub
Privatesubclass_termine
'ClearVariables & Objects
Iferr
OUPFILESTREAM.CLOSE
Form.Removeall
File.removeall
SetForm = nada
Setfile = nada
Setoupfilestream = nada
Endif
Endsub
PublicsubgetDate (RetSize)
'DefineVariables
DimRequestBindate, sstart, bcrlf, sinfo, iinfostart, iinfoend, tstream, istart, ofileinfo
Dimifilesize, Sfilepath, SfileType, SformValue, SfileName
Dimifindstart, ifndend
Dimiformstart, iformend, sformName
Ifrequest.totalbytes
Err = 1
Exitsub
Endif
Ifretsize> 0then
Ifrequest.totalbytes> retsizeten
Err = 2
Exitsub
Endif
Endif
SetForm = server.createObject ("scripting.dictionary")
Form.comparemode = 1
Setfile = server.createObject ("script.dictionary")
Arquivo.comparemode = 1
SetTtream = server.createObject ("adodb.stream")
SetoupFilEstream = server.createObject ("adodb.stream")
OPUFILESTREAM.TYPE = 1
OPUFILESTREAM.MODE = 3
OUPFILESTREAM.OPEN
OUPFILEstream.writerequest.binaryRead (request.totalbytes)
OUPFILEstream.Position = 0
RequestBindate = OPUFILEstream.read
IFORMEND = OUPFILEstream.size
Bcrlf = Chrb (13) e Chrb (10)
'GetSeperators
sstart = midb (requestBindate, 1, instrb (1, requestBindate, bcrlf) -1)
istart = lenb (sstart)
IFORMSTART = ISTART+2
'SplitItems
Fazer
iinfoend = Instrb (iformstart, requestBindate, bcrlf & bcrlf) +3
tStream.Type = 1
tStream.mode = 3
tStream.open
OUPFILESTREAM.POSIÇÃO = IFORMSTART
OUPFILESTREAM.COPYTOTSTREAM, IInfoend-Iformstart
tStream.Position = 0
tStream.Type = 2
tStream.charset = "UTF-8"
sinfo = tStream.readText
'GetFormItemName
iformstart = Instrb (iinfoend, requestBindate, sstart) -1
Ifindstart = Instr (22, sinfo, "name =" "", 1) +6
ifndend = Instr (ifindstart, sinfo, "" "", 1)
SformName = MID (Sinfo, Ifindstart, ifindend-ifindstart)
'Se éfile
Ifinstr (45, sinfo, "filename =" "", 1)> 0hen
SETOFILEINFO = newFileInfo
'GetFileAttributes
ifindstart = instrum (ifndend, sinfo, "filename =" "", 1) +10
ifndend = Instr (ifindstart, sinfo, "" "", 1)
sfilename = mid (sinfo, ifindstart, ifndend-ifindstart)
ofileinfo.fileName = MID (SfileName, Instrrev (SfileName, "/")+1)
OFILEINFO.FilePath = esquerda (SfileName, Instrrev (SfileName, "/"))
OFILEINFO.FILEEXT = MID (SfileName, Instrrev (SfileName, ".")+1)
ifindstart = instrum (ifndend, sinfo, "tipo conteúdo:", 1) +14
ifIndend = Instr (Ifindstart, Sinfo, VBCR)
OFILEINFO.FILETYPE = MID (SINFO, Ifindstart, ifndend-ifindstart)
OFILEINFO.FILESTART = IINfoend
OFILEInfo.Filesize = iformstart-iinfoend-2
ofileInfo.formName = sformName
file.addsFormName, ofileInfo
Outro
'Ifit'sFormItem
tStream.close
tStream.Type = 1
tStream.mode = 3
tStream.open
OUPFILEstream.Position = iinfoend
OUPFILESTREAM.COPYTOTSTREAM, IFORMSTART-IINFOEND-2
tStream.Position = 0
tStream.Type = 2
tStream.charset = "UTF-8"
sformValue = tStream.readText
Ifform.exists (sformName) então
Form (sformName) = form (sformName) & ",, e sformvalue
Outro
Form.addsFormName, SformValue
Endif
Endif
tStream.close
IFORMSTART = IFORMSTART+ISTART+2
'ExitatendOffile
Loopuntil (iformstart+2) = iformend
RequestBindate = ""
Setttream = nada
Endsub
Endclass
'GetfileInfo
ClassFileInfo
DiMformName, nome do arquivo, filepath, tamanho de file, FileType, FileStart, FileExt
Privatesubclass_initialize
Filename = ""
Filepath = ""
FileSize = 0
FileStart = 0
Formname = ""
Filetype = ""
FileExt = ""
Endsub
'SaveFileMethod
PublicFunctionsvetofile (Fullpath)
DIMOFILESTREAM, ERRORCHAR, i
OnErrorReSumenext
SetOfilEstream = CreateObject ("adodb.stream")
ofilestream.type = 1
ofilestream.mode = 3
ofilestream.open
OUPFILEstream.Position = FileStart
OUPFILESTREAM.COPYTOOFILESTREAM, FILSIE
OfileStream.Savetofilefilathpath, 2
OfileStream.close
SETOFILESTREAM = NADA
Função final
'GetFileContent
PublicFunctionGetDate
OUPFILEstream.Position = FileStart
GetDate = OPUFILESTREAM.READ (FILSIZE)
Função final
Endclass
%>
Funções principais
A cópia do código é a seguinte:
DimtheInstallEdObjects (17)
theInstallEdObjects (0) = "mswc.adrotator"
theInstallEdObjects (1) = "mswc.browsertype"
theInstallEdObjects (2) = "mswc.nextlink"
theInstallEdObjects (3) = "mswc.tools"
theInstalledObjects (4) = "mswc.status"
theInstallEdObjects (5) = "mswc.counters"
theInstallEdObjects (6) = "iissample.contentrotrotator"
theInstallEdObjects (7) = "iissample.pagecounter"
theInstallEdObjects (8) = "mswc.permissionChecker"
theInstallEdObjects (9) = "script.filesystemobject"
theInstallEdObjects (10) = "Adodb.Connection"
theInstallEdObjects (11) = "Starttartissans.Fileup"
theInstallEdObjects (12) = "Starttartissans.Filemanager"
theInstallEdObjects (13) = "jmail.smtpmail"
theInstallEdObjects (14) = "CDONTS.Newmail"
theInstallEdObjects (15) = "Persits.mailsender"
theInstallEdObjects (16) = "lyfupload.uploadfile"
theInstallEdObjects (17) = "Persits.Upload.1"
Dimfso
IfisObjinstalled (TheInstallEdObjects (9)) então
Setfso = server.createObject ("scripting.filesystemobject")
Endif
FunctionIsObjinstalled (strclassString)
OnErrorReSumenext
Isobjinstalled = false
Err = 0
Dimxtestobj
Setxtestobj = server.createObject (strclassString)
If0 = errThenisObjInstalled = true
Setxtestobj = nada
Err = 0
Função final
'Verifique a versão do componente
PublicFunctionGetver (Classstr)
OnErrorReSumenext
Dimxtestobj
Setxtestobj = server.createObject (classe)
IferrThen
getver = ""
outro
getver = xtestobj.version
endif
Setxtestobj = nada
Função final
'Nome da experiência
FunctionIsValidFilename (File_Name)
IsValidFileName = false
Dimre, REST
Setre = newRegexp
re.IGNORECASE = true
re.global = true
re.pattern = "[^_/. a-za-z/d]"
rest = re.Replace (file_name, "")
Iffile_name = restrThenisValidFilename = true
Setre = nada
Função final
'Escrita de arquivos
FunctionWriteto (xmlfloder, xmlfile, conteúdo, modo)
writEto = false
IfnotisObjinstalled (TheInstallEdObjects (9)) ThenExitfunção
modo = killint (modo, 0,0,2)
xmlfloder = server.mappath (xmlfloder)
Setfso = server.createObject ("scripting.filesystemobject")
ifnotfso.Polderexists (xmlfloder) Então
fso.createfolder (xmlfloder)
Endif
xmlfile = substituir (xmlfloder & "/", "//", "/") & xmlfile
'Response.write (warn_red (xmlfile))
Dimfsoxml
Ifffso.fileExists (xmlfile) e mode = 1hen 'não escreve
Saída de saída
elseifffso.fileExists (xmlfile) e mode = 2Then'rewrite
Setfsoxml = fso.opentExtfile (xmlfile, 2)
fsoxml.WriteLine (Content)
fsoxml.close
writEto = true
Elseifffso.fileExists (xmlfile) e mode = 8then'add
Setfsoxml = fso.opentExtfile (xmlfile, 8)
fsoxml.WriteLine (Content)
fsoxml.close
writEto = true
Elseifffso.fileExists (xmlfile) então
SetfSoxml = fso.opentExtFile (xmlfile, 2) 'reescrita
fsoxml.WriteLine (Content)
fsoxml.close
writEto = true
Outro
SetfSoxml = fso.createTextFile (xmlfile) 'Crie
fsoxml.WriteLine (Content)
fsoxml.close
writEto = true
Endif
Função final
'Exclua o arquivo
FunctionDelaspfile (x)
OnErrorReSumenext
DELASPFILE = FALSO
IfnotFileExitorNot (x) Então
Saída de saída
Outro
fso.DeleteFileServer.mappath (x)
Delaspfile = true
Endif
Função final
'O arquivo existe
FunctionFileExitorNot (arquivo)
OnErrorReSumenext
Dimf_re_file
f_re_file = true
Ifnotfso.fileExists (server.mappath (arquivo)) thenf_re_file = false
IFERR0THENF_RE_FILE = FALSE
FILEEXITORNOT = F_RE_FILE
Função final
'Supressão de erro, erro de impressão
Functionshow_err (err)
OnErrorReSumenext
Iferr.Number0Then
Response.clear
DIMERR_MESS
err_mess = " Ocorreu erro:
Número do erro: "& err.number &"
Mensagem de erro: "& err.description &"
Arquivo de erro: "& err.source &"
Linha de erro: "& err.line &" (não suportado)
"&errar
Response.write (err_mess)
Endif
Função final
'avisar:
Functionwarn_red (bagunça)
warn_red = " Track:" & Mess & "
" = vermelho>
Função final
'Diretório de arquivos FSO
FunctionShowlfile (caminho)
'OnErrorReSumenext
caminho = substituir (caminho, "//", "/")
setfso = createObject ("script.filesystemoBject")
DimuploadPath, UploadFolder, ObjSubFolders, Allfiles, FileItem, ObjSubFolder,
sfilename
Ifinstr (1, caminho, ":/") = 0hen
caminho = substituir (caminho, "/", "/")
uploadPath = server.mappath (caminho)
Outro
caminho = substituir (caminho, "/", "/")
uploadPath = Path
Endif
Response.Write (warn_red (uploadpath))
ifnotfso.Polderexists (uploadPath) Então
Response.writewarn_red ("A pesquisa de caminho falhou")
Saída de saída
Endif
SetupLoadFolder = fso.getFolder (uploadPath)
IfUploadFolder.isrootFolderThen
Response.Write (" Diretório raiz
")
Outro
Response.Write (" Diretório pai:
"& UPLOUPLOWLER.PARENTFOLder &"
")
Endif
Response.Write (" Tamanho do diretório:" & int (uploadFolder.size/1024) e "KB
")
setObJSubFolders = UploadFolder.SubFolders
Dimfso_mes
fso_mes = "
foreachobjsubFolderinObJSubFolders
fso_mes = fso_mes & "
próximo
setallfiles = uploadFolder.Files
foreachfileIteminallfiles
fso_mes = fso_mes & "
Próximo
fso_mes = fso_mes & "
"
Response.write (fso_mes)
Response.WritedElText (UploadPath, 1)
Função final
'Propriedades do arquivo
FunctionFilePro (nome)
nome = substituir (nome, "//", "/")
Dim qual arquivo
Ifinstr (1, nome, ":/") = 0hen
Nome = Substitua (Nome, "/", "/")
qualfile = server.mappath (nome)
Outro
Nome = Substitua (Nome, "/", "/")
qualfile = nome
Endif
Setfso = createObject ("script.filesystemoBject")
Ifnotfso.fileExists (que file) então
Response.write (warn_red ("O arquivo não existe ou não tem permissão de acesso"))))
Saída de saída
Endif
DIMF2, S_MESS
Setf2 = fso.getfile (qual arquivo)
s_mess = " Diretório pai:" & f2.parentfolder &
"
"
s_mess = s_mess & "Nome do arquivo:" & f2.name & "
"
s_mess = s_mess & "Arquivo Nome do caminho curto:" & f2.shortpath & "
"
S_MESS = S_MESS & "Endereço físico do arquivo:" & f2.path & "
"
s_mess = s_mess & "Atributo do arquivo:" & f2.attributes & "
"
s_mess = s_mess & "Tamanho do arquivo:" & f2.size & "
"
s_mess = s_mess & "Tipo de arquivo:" & f2.type & "
"
S_MESS = S_MESS & "TEMPO DE CRIAÇÃO DE ARQUIVO:" & F2.DATECREATED & "
"
S_MESS = S_MESS & "Tempo de acesso mais recente:" & f2.datelastAcced & "
"
S_MESS = S_MESS & "mais recente tempo modificado:" & f2.datelastmodified & "
"
Response.Write (S_MESS)
Ifkillint (TRIM (request ("type")), 0,0,2) 0then
ShowText (qual arquivo)
Endif
Response.WritedElText (qualfile, 0)
Função final
'
SubShowText (arquivos)
Dimist, Adostext, Strap
setAdostExt = server.createObject ("adodb.stream")
adostext.mode = 3
adostext.type = 2
adostExt.charset = "GB2312"
'AdostExt.charset = "big5"
AdostExt.open
Ifinstr (1, arquivos, ":/") = 0hen
Arquivos = substituir (arquivos, "/", "/")
arquivos = server.mappath (arquivos)
Outro
Arquivos = substituir (arquivos, "/", "/")
arquivos = arquivos
Endif
AdostExt.loadfromfile (arquivos)
straps = adostExt.readText ()
AdostExt.close
setAdostExt = nada%>
FunctionDelText (arquivo, modo)
Dimdeltext_mess
deltext_mess = ""
SelectCasekillint (modo, 0,0,2)
Case0:
deltext_mess = deltext_mess & "Operação de arquivo: propriedades editar cópia móvel renomear delete " = vermelho> = vermelho>
Case1:
deltext_mess = deltext_mess & "Operação da pasta: listar o arquivo do diretório de criação do arquivo de upload de arquivo de movimentação renomear e excluir " = vermelho>
EndSelect
deltext_mess = deltext_mess & ""
deltext = deltext_mess
Função final
O acima é um tutorial detalhado sobre o FSO operando o sistema de arquivos. Eu acredito que você aprendeu. Para mais conteúdo relacionado, continue prestando atenção ao canal de tecnologia Wuxin.