Einige spezielle Ordner können nicht vollständig angezeigt werden, sie können jedoch über den UNC-Pfad gelöscht werden. Voraussetzung ist jedoch, dass der genaue Pfad bekannt ist. Derzeit gibt es immer noch einige Fälle, die ich nicht über msdn angezeigt werden kann Wenn Sie keine bessere Lösung sehen, geben Sie die Recherche vorerst auf, und Freunde, die die vollständige Lösung kennen, möchten vielleicht antworten.
Hängen Sie zunächst bat an, um ein fehlerhaftes Verzeichnis zu erstellen. Kopieren Sie den folgenden Code und speichern Sie ihn als .bat:
Kopieren Sie den Codecode wie folgt:
md aux//
md com1//
md com2//
md prn//
md con//
md nul//
md dot...//
md onedot..//
Programmcode
Kopieren Sie den Codecode wie folgt:
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<%
Option explizit
Response.charset = UTF-8
session.codepage = 65001
session.timeout = 1440
server.scripttimeout = 9999
'****************************
'Name: Verzeichnislistenklasse
'Autor: Yipin
„Datum: 28.04.2010
„Website: www.vevb.com
'Beschreibung: Verzeichnislistenklasse, unterstützt fehlerhafte Verzeichnisnamen
'****************************
Klasse FsoCls
Privater Fso
Öffentliches FsoObj
Private Sub Class_Initialize
Setze Fso=CreateObject(Scripting.FileSystemObject)
Setzen Sie FsoObj=Fso
Sub beenden
Private Unterklasse_Terminate
Setze Fso=Nothing
Setze FsoObj=Nothing
Sub beenden
Funktion IsFolderExists(FolderPath)
Wenn fso.FolderExists(FolderPath) Dann
IsFolderExists = true
Anders
IsFolderExists = false
Ende wenn
Funktion beenden
Funktion FolderItem(ByVal FolderDir)
Wenn Instr(FolderDir,:/)>0 Dann
FolderDir=//?/&FolderDir&/
Anders
FolderDir=//?/&Server.MapPath(FolderDir)&/
Ende wenn
Wenn IsFolderExists(FolderDir) = False, dann
FolderItem=False
Exit-Funktion
Ende wenn
Dim FolderObj,FolderList,F,i
i=1
Setze FolderObj=Fso.GetFolder(FolderDir)
Legen Sie FolderList=FolderObj.SubFolders fest
FolderItem=Gesamtzahl der Verzeichnisse: &FolderObj.SubFolders.Count&<hr> & vbcrlf
FolderItem=FolderItem&Gesamtzahl der Dateien: &FolderObj.Files.count&<hr> & vbcrlf
Für jedes F in FolderList
'Response.Write F.ShortName
'Response.Write (instr(1,F.ShortName,~,1))
Wenn IsFolderExists(FolderDir&F.Name) = True, dann Response.Write (T<br> & vbcrlf)
If(instr(1,F.Name,.,0)>0) Dann
Response.Write(T)
F.Name=Replace(F.Name,.,-)
Ende wenn
FolderItem=FolderItem&i&├─Folder→&F.Name&<br> & vbcrlf
i=i+1
Nächste
Legen Sie FolderList=Nothing fest
Legen Sie FolderObj=Nothing fest
Funktion beenden
Unterricht beenden
%>
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml xml:lang=zh-cn>
<Kopf>
<meta http-equiv=Content-Type content=text/html;
<title>Verzeichnislistenklasse unterstützt fehlerhafte Verzeichnisnamen</title>
</head>
<Körper>
<%
Dim F: Setze F = neue FsoCls
Response.write F.FolderItem(/)
%>
</body>
</html>