Certains dossiers spéciaux asp ne peuvent pas être entièrement affichés, mais ils peuvent être supprimés via le chemin unc, mais le principe est que le chemin exact doit être connu. Actuellement, il y a encore certains cas qui ne peuvent pas être affichés dans msdn et je ne le fais pas. Je ne semble pas voir de meilleure solution, abandonnez la recherche pour le moment, et les amis qui connaissent la solution complète voudront peut-être répondre.
Tout d’abord, attachez bat pour créer un répertoire mal formé. Copiez et enregistrez le code suivant sous a.bat :
Copiez le code comme suit :
mdaux//
mdcom1//
mdcom2//
md prn//
md con//
md nul//
point md...//
md onedot..//
code de programme
Copiez le code comme suit :
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<%
option explicite
réponse.charset = UTF-8
session.page de code = 65001
session.timeout = 1440
serveur.scripttimeout = 9999
'***************************
'Nom : classe de liste de répertoires
'Auteur : Yipin
'Date : 2010-4-28
'Site Web : www.vevb.com
'Description : Classe de liste de répertoires, prend en charge les noms de répertoires mal formés
'***************************
Classe FsoCls
Fso privé
Public FsoObj
Sous-classe privée_Initialize
Définir Fso=CreateObject (Scripting.FileSystemObject)
Définir FsoObj=Fso
Fin du sous-marin
Sous-classe privée_Terminate
Définir Fso=Rien
Définir FsoObj=Rien
Fin du sous-marin
Fonction IsFolderExists (FolderPath)
Si fso.FolderExists(FolderPath) Alors
IsFolderExists = vrai
Autre
IsFolderExists = faux
Fin si
Fonction de fin
Fonction FolderItem (ByVal FolderDir)
Si Instr(FolderDir,:/)>0 Alors
RépDossier=//?/&RépDossier&/
Autre
FolderDir=//?/&Server.MapPath(FolderDir)&/
Fin si
Si IsFolderExists(FolderDir) = False Alors
DossierItem=Faux
Fonction de sortie
Terminer si
Dim FolderObj,FolderList,F,i
je = 1
Définir FolderObj=Fso.GetFolder(FolderDir)
Définir FolderList=FolderObj.SubFolders
FolderItem=Nombre total de répertoires : &FolderObj.SubFolders.Count&<hr> & vbcrlf
FolderItem=FolderItem&Nombre total de fichiers : &FolderObj.Files.count&<hr> & vbcrlf
Pour chaque F dans la liste des dossiers
'Réponse.Écrire F.ShortName
'Réponse.Write (instr(1,F.ShortName,~,1))
Si IsFolderExists(FolderDir&F.Name) = True Then Response.Write (T<br> & vbcrlf)
Si(instr(1,F.Name,.,0)>0) Alors
Réponse.Write(T)
F.Nom=Remplacer(F.Nom,.,-)
Terminer si
FolderItem=FolderItem&i&├─Dossier→&F.Name&<br> & vbcrlf
je=i+1
Suivant
Définir FolderList=Rien
Définir FolderObj=Rien
Fonction de fin
Fin du cours
%>
<!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>
<tête>
<meta http-equiv=Content-Type content=text/html; charset=utf-8 />
<title>La classe de liste de répertoires prend en charge les noms de répertoires mal formés</title>
</tête>
<corps>
<%
Dim F : Définir F = nouveaux FsoCls
Response.write F.FolderItem(/)
%>
</corps>
</html>