A continuación se muestra un tutorial detallado sobre la operación del sistema de archivos FSO que el editor ha compartido con usted. Amigos interesados, ¡aprendamos al respecto con el editor!
Implementar funciones:
La lista de directorio de archivo (carpeta) proporciona la búsqueda de archivos y carpetas debajo del directorio.
La redacción de archivos, la creación y la eliminación proporcionan el funcionamiento de la edición y la eliminación de archivos (carpetas)
Crear carpetas/archivos está configurado para crear carpetas (archivos).
Cargar archivos Puede simular cargas FTP, con tamaño y tipo de archivo ilimitado.
Si está interesado, no tendrá ninguna consecuencia si tiene algún problema. Aquí digo que no tengo mucho tiempo para navegar por Internet y, a menudo, no puedo cuidarlo. Vi que la gente a menudo hacía esta pregunta recientemente, así que la publiqué, con la esperanza de que fuera útil.
UPFSO.asp // Control de archivos cargados
La copia del código es la siguiente:
@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 ("sí") = "cargar" entonces
ruta = trim (request ("ruta"))
'Response.write (ruta y "---")
'Respuesta.
DIMFSO, FSOISOK, F_FILENAME, MODO
F_filename = trim (request ("nn"))
MODE = KillInt (TRIM (request ("Modo")), 0,0,2)
FSOISOK = 1
Setfso = server.createObject ("scripting.filesystemObject")
Iferr0Then
Err.Clear
FSOISOK = 0
Endif
Dimd_name, f_name
IffsoSOK = 1
Ifinstr (1, ruta, ":/") = 0then
ruta = reemplazar (lcase (ruta), "/", "/")
ruta = servidor.mappath (ruta)
ruta = reemplazar (ruta y "/", "//", "/")
Demás
ruta = reemplazar (lcase (ruta), "/", "/")
ruta = reemplazar (ruta y "/", "//", "/")
Endif
ifnotfso.foldereRexists (ruta) entonces
Respuesta.WRITE "Falló la búsqueda de ruta básica, retorno" = '#000080'>
respuesta.
Endif
Endif
Setfso = nada
DimfileUp
SetFileUp = newupload_file
FileUp.getDate (-1)
Dimf_filetype, f_file
Setf_file = fileup.file ("archivo")
Iflen (F_FileName)
Iflen (F_FileName)
Response.write ("archivo vacío, por favor devuelva") = '#000080'> = 'JavaScript: History.go (-1);'>
respuesta.
Endif
'F_filetype = ucase (f_file.fileExt)
'IFF_FILE.FILESIZE> 90000THEN
'Response.write ("El tamaño excede el límite") = 'JavaScript: History.go (-1);'>
'Exitsub
IfisValidFileName (f_filename) = falsethen
Response.write ("Nombre incorrecto") = '#000080'> = 'JavaScript: History.go (-1);'>
Demás
Dimfileisexistas
Setfso = server.createObject ("scripting.filesystemObject")
FileisExists = fso.fileExists (Path & f_filename)
IfFileSexists = TrueAnandMode1Then
FSO.DeleteFile (ruta y f_filename)
Response.write ("El archivo ya existe, se ha eliminado;") = '#000080'>
F_file.savetofilepath & f_filename
Response.write (" Haga clic aquí para continuar cargando:" & Path & f_filename & " = '#000080'> ")
ElseAffileSexists = TrueAnandMode = 1Then
Response.write ("El archivo ya existe, eligió no sobrescribir") = '#000080'>
Demás
F_file.savetofilepath & f_filename
Response.write (" Haga clic aquí para continuar cargando:" & Path & f_filename & " = '#000080'> ")
Endif
Endif
Setf_file = nada
SetFileUp = nada
Demás
Dimpath, nn, mmode
nn = trim (request ("nn"))
mmode = trim (request ("modo"))
ruta = reemplazar (request ("ruta"), "//", "/")
Ifpath = "" entoncesPath = "../ newup/"
Response.write (" ")
Endif
'Nombre de la experiencia
FunctionIsValidFileName (file_name)
IsValidFileName = falso
Dimre, restric
Setre = newregexp
re.ignorecase = True
re.global = verdadero
re.pattern = "[^_/. A-Za-Z/D]"
rest = re.replace (file_name, "")
IfFile_Name = RESTRTHENISVALIDFileName = True
Setre = nada
Función final
%>
cargar.asp // cargar clase
La copia del código es la siguiente:
Dimaupfilestream
Classupload_file
Dimform, archivo, errar
Privatesubclass_initialize
Err = -1
Endsub
Privatesubclass_merminate
'ClearVariables y objetos
Zahrán
oupfilestream.close
Form.removeall
File.removealll
SetForm = nada
Setfile = nada
SateupFilErtream = nada
Endif
Endsub
PublicsubgetDate (RetSize)
'Definevariables
DimRequestBindate, Sstart, Bcrlf, Sinfo, Iinfostart, Iinfoend, Tstream, Istart, Ofileinfo
Dimifilesize, sfilepath, sfiletype, sformvalue, sfilename
Dimifindstart, ifindend
DimiformStart, iformend, sformname
Ifrequest.totalbytes
Err = 1
Salida
Endif
Ifretsize> 0then
Ifrequest.totalbytes> retsizethen
Err = 2
Salida
Endif
Endif
Setform = server.createObject ("scripting.dictionary")
Form.Comparemode = 1
SetFile = server.createObject ("scripting.dictionary")
File.comparemode = 1
Settstream = server.createObject ("ADODB.Stream")
SateupFilErsream = server.createObject ("ADODB.Stream")
oUpFilEnstream.Type = 1
oUpFilErtream.Mode = 3
oUpFilErteam.open
oUpFilEnstream.Writerequest.BinaryRead (request.totalbytes)
oUpFilEnstream.Position = 0
RequestBindate = oUPFilErteam.read
iformend = oUpFilErtream.size
BCRLF = CHRB (13) y CHRB (10)
'Getseperators
sstart = midb (requestbindate, 1, instrb (1, requestbindate, bcrlf) -1)
istart = LENB (SSTART)
iformstart = istart+2
'Splititems
Hacer
iinfoend = instrb (iformstart, requestbindate, bcrlf & bcrlf) +3
tstream.type = 1
tstream.mode = 3
tstream.apor
oPFilErtream.Position = iformStart
oUpFilEnstream.copyTottream, 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
ifindend = instr (ifindstart, sinfo, "" "", 1)
sformname = mid (sinfo, ifindstart, ifindend-ifindstart)
'Ifit'safile
Ifinstr (45, sinfo, "filename =" "", 1)> 0then
SetOfileInfo = newFileInfo
'GetFileAtTributes
ifindstart = instr (ifindend, sinfo, "filename =" "", 1) +10
ifindend = instr (ifindstart, sinfo, "" "", 1)
sfilename = Mid (sinfo, ifindstart, ifindend-ifindstart)
OfileInfo.FileName = Mid (Sfilename, Instrrev (Sfilename, "/")+1)
ofileinfo.filePath = izquierda (sfilename, instrrev (sfilename, "/"))
ofileinfo.fileExt = Mid (sfilename, instrrev (sfilename, ".")+1)
ifindstart = instr (ifindend, sinfo, "Tipo de contenido:", 1) +14
ifindend = instr (ifindstart, sinfo, vbcr)
ofileinfo.filetype = mid (sinfo, ifindstart, ifindend-ifindstart)
ofileinfo.filestart = iinfoend
ofileinfo.filesize = iformstart-iinfoend-2
ofileinfo.formname = sformname
file.addsFormName, OfileInfo
Demás
'Ifit'sformitem
tstream.close
tstream.type = 1
tstream.mode = 3
tstream.apor
oUpFilEnstream.Position = iInfoend
oUpFilErteam.CopyTotStream, iformstart-iinfoend-2
tstream.position = 0
tstream.type = 2
tstream.charset = "UTF-8"
sFormValue = tstream.readText
Ifform.exists (sformname) entonces
Form (sformname) = form (sformname) & "," & sFormValue
Demás
Form.addsFormName, sFormValue
Endif
Endif
tstream.close
iformstart = iformstart+istart+2
'ExitatendOffile
Loopuntil (iformstart+2) = iformend
RequestBindate = ""
Settstream = nada
Endsub
Clase final
'GetFileInfo
ClassfileInfo
DimFormName, FileName, FilePath, FileSize, FileType, FileStart, FileExt
Privatesubclass_initialize
FileName = ""
Filepath = ""
Filesize = 0
FilStart = 0
Formname = ""
FileType = ""
Fileext = ""
Endsub
'SaveFilemethod
PublicFunctionsVetOfile (Papath)
DimoFiLestream, errorchar, yo
OnerrorResumEnext
SetOfiLSteam = createObject ("ADODB.Stream")
OfIlStream.Type = 1
ofIlRessream.mode = 3
OfIlRestream. Abre
oupFilErteam.Position = FilStart
oupFilErteam.CopyToOfIlSeReam, filesize
OfIlRessam.SavetofileFullPath, 2
OfILRESTREAM.CLOSE
SetOfiLSteam = nada
Función final
'GetFilecontent
PublicfunctiongetDate
oupFilErteam.Position = FilStart
GetDate = oUPFilErteam.read (filesize)
Función final
Clase final
%>
Funciones centrales
La copia del código es la siguiente:
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.contentrotator"
TheInstalledObjects (7) = "iissample.pageCounter"
TheInstalledObjects (8) = "MSWC.PermissionChecker"
TheInstalledObjects (9) = "scripting.filesystemObject"
TheInstalledObjects (10) = "ADODB.Connection"
TheInstalledObjects (11) = "Softartisans.fileUp"
TheInstalledObjects (12) = "Softartisans.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)) entonces
Setfso = server.createObject ("scripting.filesystemObject")
Endif
FunctionSobjinstalled (strclassstring)
OnerrorResumEnext
Isobjinstalled = falso
Err = 0
Dimxtestobj
Setxtestobj = server.createObject (strclassstring)
If0 = errtthenisobjinstalled = true
Setxtestobj = nada
Err = 0
Función final
'Verifique la versión del componente
PublicFunctionGetver (classstr)
OnerrorResumEnext
Dimxtestobj
Setxtestobj = server.createObject (classstr)
Iferrthen
getver = ""
demás
getver = xtestobj.version
endif
Setxtestobj = nada
Función final
'Nombre de la experiencia
FunctionIsValidFileName (file_name)
IsValidFileName = falso
Dimre, restric
Setre = newregexp
re.ignorecase = True
re.global = verdadero
re.pattern = "[^_/. A-Za-Z/D]"
rest = re.replace (file_name, "")
IfFile_Name = RESTRTHENISVALIDFileName = True
Setre = nada
Función final
'Escritura de archivos
FunctionWriteTo (xmlfloder, xmlfile, contenido, modo)
WriteTo = Falso
Ifnotisobjinstalled (theinstalledObjects (9)) DonexitFunction
modo = killint (modo, 0,0,2)
xmlfloder = server.mappath (xmlfloder)
Setfso = server.createObject ("scripting.filesystemObject")
ifnotfso.foldereRexists (xmlfloder) entonces
FSO.CreateFolder (xmlfloder)
Endif
xmlfile = reemplazar (xmlfloder & "/", "//", "/") & xmlfile
'Response.Write (Warn_red (XMLFile))
Dimfsoxml
Ifffso.fileExists (xmlfile) ymode = 1then 'no escribe
Extinción
ElseifffSo.FileExists (xmlfile) andMode = 2then'Rewrite
SetfSoxml = fso.opentextfile (xmlfile, 2)
FSOXML.WriteLine (contenido)
FSOXML.CLOSE
WriteTo = True
Elseifffso.fileExists (xmlfile) ymode = 8then'Add
SetfSoxml = fso.opentextfile (xmlfile, 8)
FSOXML.WriteLine (contenido)
FSOXML.CLOSE
WriteTo = True
Elseifffso.fileExists (xmlfile) entonces
SetfSoxml = fso.opentextfile (xmlfile, 2) 'Reescribir
FSOXML.WriteLine (contenido)
FSOXML.CLOSE
WriteTo = True
Demás
SetfSoxml = fso.createTextFile (xmlfile) 'Crear
FSOXML.WriteLine (contenido)
FSOXML.CLOSE
WriteTo = True
Endif
Función final
'Eliminar el archivo
FunctionDelaspFile (x)
OnerrorResumEnext
Delaspfile = Falso
IfnotfileExitornot (x) entonces
Extinción
Demás
fso.deletefileserver.mappath (x)
DelaspFile = True
Endif
Función final
'El archivo existe
FINTOFILEEXITORNOT (archivo)
OnerrorResumEnext
Dimf_re_file
f_re_file = verdadero
Ifnotfso.fileExists (server.mappath (archivo)) entoncesf_re_file = falso
Iferr0thenf_re_file = falso
FileExitornot = F_RE_FILE
Función final
'Supresión de errores, error de impresión
FunctionShow_err (err)
OnerrorResumEnext
Iferr.number0then
Respuesta.
Dimerr_mess
Err_mess = " Se produjo un error:
Número de error: "& err.number &"
Mensaje de error: "& Err.Description &"
Archivo de error: "& Err.source &"
Línea de error: "& err.line &" (no compatible)
"&errar
Response.write (err_mess)
Endif
Función final
'advertir:
Functionwarn_red (desorden)
warn_red = " Track:" & Mess & "
" = rojo>
Función final
'Directorio de archivos FSO
FunctionShowallFile (ruta)
'OnerrorResumEnext
ruta = reemplazar (ruta, "//", "/")
setfso = createObject ("scripting.filesystemObject")
Dimuploadpath, uploadfolder, objSubfolders, Allfiles, FileItem, ObjSubFolder,
sfilename
Ifinstr (1, ruta, ":/") = 0then
ruta = reemplazar (ruta, "/", "/")
uploadPath = server.mappath (ruta)
Demás
ruta = reemplazar (ruta, "/", "/")
carguepath = ruta
Endif
Response.Write (Warn_red (uploadPath))
ifnotfso.foldereRexists (carguepath) entonces
Response.WriteWarn_Red ("Falló en la búsqueda de ruta")
Extinción
Endif
Setuploadfolder = fso.getfolder (uploadPath)
Ifuploadfolder.srootfolderthen
Response.write (" Directorio raíz
")
Demás
Response.write (" Directorio de padres:
"& uploadfolder.parentfolder &"
")
Endif
Response.Write (" Tamaño del directorio:" & int (uploadfolder.size/1024) y "KB
")
setobjsubfolders = uploadfolder.subfolders
Dimfso_mes
fso_mes = "
foreachobjsubfolderinobjsubfolders
fso_mes = fso_mes & "
próximo
setallFiles = uploadfeder.files
foreachFileItemInallFiles
fso_mes = fso_mes & "
Próximo
fso_mes = fso_mes & "
"
Response.Write (FSO_MES)
respuesta
Función final
'Propiedades del archivo
Functilepro (nombre)
nombre = reemplazar (nombre, "//", "/")
Dim que archivo
Ifinstr (1, nombre, ":/") = 0then
nombre = reemplazar (nombre, "/", "/")
whatfile = server.mappath (nombre)
Demás
nombre = reemplazar (nombre, "/", "/")
que archivo = nombre
Endif
Setfso = createObject ("scripting.filesystemObject")
Ifnotfso.fileExists (que archivo) entonces
Response.write (warn_red ("El archivo no existe o no tiene permiso de acceso"))
Extinción
Endif
Dimf2, s_mess
Setf2 = fso.getfile (qué archivo)
s_mess = " Directorio principal:" y F2.ParentFolder &
"
"
s_mess = s_mess & "nombre del archivo:" & f2.name & "
"
s_mess = s_mess & "Nombre de ruta corta de archivo:" & f2.shortpath & "
"
S_Mess = S_Mess & "Dirección física del archivo:" & F2.Path & "
"
s_mess = s_mess & "atributo de archivo:" & f2.Attributes & "
"
s_mess = s_mess & "tamaño de archivo:" & f2.Size & "
"
s_mess = S_Mess & "Tipo de archivo:" & F2.Type & "
"
s_mess = s_mess & "Tiempo de creación de archivos:" & f2.datecreated & "
"
s_mess = s_mess & "Último tiempo de acceso:" & f2.datelastacciss & "
"
s_mess = s_mess & "Último tiempo modificado:" & f2.datelastmodified & "
"
Response.Write (S_Mess)
Ifkillint (trim (request ("tipo")), 0,0,2) 0then
showText (que archivo)
Endif
Response.WritedElText (Whatfile, 0)
Función final
'
SubshowText (archivos)
Dimistr, AdoStext, Strap
setDostext = server.createObject ("ADODB.Stream")
atostext.mode = 3
atostext.type = 2
atostext.charset = "GB2312"
'ADOSTEXT.CHARSET = "BIG5"
atostext.open
Ifinstr (1, archivos, ":/") = 0then
archivos = reemplazar (archivos, "/", "/")
archivos = server.mappath (archivos)
Demás
archivos = reemplazar (archivos, "/", "/")
archivos = archivos
Endif
atostext.loadFromFile (archivos)
Strap = AdoStext.ReadText ()
atostext.close
setAdostext = nada%>
FunctionDelText (archivo, modo)
DimdelText_Mess
Deltext_mess = ""
SelectCaseKillint (modo, 0,0,2)
Caso0:
deltext_mess = deltext_mess & "Operación del archivo: Propiedades Editar copia móvil Cambiar el nombre Eliminar " = rojo> = rojo>
Caso1:
deltext_mess = deltext_mess & "Operación de carpetas: lista de directorio de creación manual de archivo de carga de carga mude copiar nombre y eliminar " = rojo>
EndSelectar
Deltext_mess = Deltext_mess & ""
Deltext = DelText_Mess
Función final
Lo anterior es un tutorial detallado sobre FSO que opera el sistema de archivos. Creo que lo has aprendido. Para obtener más contenido relacionado, continúe prestando atención al canal de tecnología Wuxin.