这个目前还是有个别无法显示,翻了下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。
gxlsystem。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
” & vbcrlf)
If(instr(1,F。
Name,”。”,0)>0) Then
Response。Write (“T”)
F。Name=Replace(F。Name,”。”,”-“)
End if
FolderItem=FolderItem&i&”├─文件夹→”&F。
Name&”
” & 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>

相关推荐