ASP FSO显示特殊文件夹的实现代码(畸形目录名、UNC路径)

时间:2022-09-01 20:30:14
这个目前还是有个别无法显示,翻了下msdn貌似没看到更好的解决方案,暂时放弃继续研究,有晓得完全解决的朋友不妨回复说一声。 
先附bat创建畸形目录,以下代码复制另存为a.bat: 
复制代码代码如下:

md aux\\ 
md com1\\ 
md com2\\ 
md prn\\ 
md con\\ 
md nul\\ 
md dot...\\ 
md onedot..\\ 

程序代码 
复制代码代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% 
option explicit 
response.charset = "UTF-8" 
session.codepage = 65001 
session.timeout = 1440 
server.scripttimeout = 9999 
'*************************** 
'名称:目录列表类 
'作者:逸品 
'日期:2010-4-28 
'网址:www.zzvips.com 
'描述:目录列表类,支持畸形目录名 
'*************************** 
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="目录总数:"&FolderObj.SubFolders.Count&"<hr>" & vbcrlf 
FolderItem=FolderItem&"文件总数:"&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&"├─文件夹→"&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>目录列表类 支持畸形目录名</title> 
</head> 
<body> 
<% 
Dim F: Set F = new FsoCls 
Response.write F.FolderItem("/") 
%> 
</body> 
</html>