Some special folders asp cannot be fully displayed, but they can be deleted through the unc path, but the premise is that the exact path must be known. Currently, there are still some cases that cannot be displayed. I looked through msdn and I don’t seem to see a better solution. , give up the research for the time being, and friends who know the complete solution may wish to reply.
First, attach bat to create a malformed directory. Copy and save the following code as a.bat:
Copy the code code as follows:
md aux//
md com1//
md com2//
md prn//
md con//
md nul//
md dot...//
md onedot..//
program code
Copy the code code as follows:
<%@LANGUAGE=VBSCRIPT CODEPAGE=65001%>
<%
option explicit
response.charset = UTF-8
session.codepage = 65001
session.timeout = 1440
server.scripttimeout = 9999
'****************************
'Name: directory list class
'Author: Yipin
'Date: 2010-4-28
'Website: www.vevb.com
'Description: Directory list class, supports malformed directory names
'****************************
Class FsoCls
Private Fso
Public FsoObj
Private Sub Class_Initialize
Set Fso=CreateObject(Scripting.FileSystemObject)
Set FsoObj=Fso
End Sub
Private Sub Class_Terminate
Set Fso=Nothing
Set FsoObj=Nothing
End Sub
Function IsFolderExists(FolderPath)
If fso.FolderExists(FolderPath) Then
IsFolderExists = true
Else
IsFolderExists = false
End If
End Function
Function FolderItem(ByVal FolderDir)
If Instr(FolderDir,:/)>0 Then
FolderDir=//?/&FolderDir&/
Else
FolderDir=//?/&Server.MapPath(FolderDir)&/
End If
If IsFolderExists(FolderDir) = False Then
FolderItem=False
Exit Function
End if
Dim FolderObj,FolderList,F,i
i=1
Set FolderObj=Fso.GetFolder(FolderDir)
Set FolderList=FolderObj.SubFolders
FolderItem=Total number of directories: &FolderObj.SubFolders.Count&<hr> & vbcrlf
FolderItem=FolderItem&Total number of files: &FolderObj.Files.count&<hr> & vbcrlf
For Each F In FolderList
'Response.Write F.ShortName
'Response.Write (instr(1,F.ShortName,~,1))
If IsFolderExists(FolderDir&F.Name) = True Then Response.Write (T<br> & vbcrlf)
If(instr(1,F.Name,.,0)>0) Then
Response.Write(T)
F.Name=Replace(F.Name,.,-)
End if
FolderItem=FolderItem&i&├─Folder→&F.Name&<br> & vbcrlf
i=i+1
Next
Set FolderList=Nothing
Set FolderObj=Nothing
End Function
End Class
%>
<!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>
<head>
<meta http-equiv=Content-Type content=text/html; charset=utf-8 />
<title>Directory list class supports malformed directory names</title>
</head>
<body>
<%
Dim F: Set F = new FsoCls
Response.write F.FolderItem(/)
%>
</body>
</html>