一部の特殊フォルダー asp は完全に表示できませんが、unc パスを使用して削除できますが、正確なパスがわかっていることが前提です。現時点では、msdn で調べたところ、表示できないケースがまだいくつかあります。より良い解決策が見つからないようです。当面は研究をあきらめてください。完全な解決策を知っている友人が返信するかもしれません。
まず、bat をアタッチして不正な形式のディレクトリを作成し、次のコードをコピーして .bat として保存します。
次のようにコードをコピーします。
md aux//
md com1//
mdcom2//
md prn//
MDコン//
md null//
md ドット...//
md onedot..//
プログラムコード
次のようにコードをコピーします。
<%@LANGUAGE=VBSCRIPT コードページ=65001%>
<%
明示的なオプション
応答.charset = UTF-8
セッション.コードページ = 65001
セッション.タイムアウト = 1440
サーバー.スクリプトタイムアウト = 9999
「****************************」
'名前: ディレクトリ リスト クラス
作者:イーピン
'日付: 2010-4-28
ウェブサイト: www.vevb.com
'説明: ディレクトリ リスト クラス、不正な形式のディレクトリ名をサポートします
「****************************」
クラスFsoCls
プライベート FSO
パブリック FsoObj
プライベートサブクラス_初期化
Set Fso=CreateObject(Scripting.FileSystemObject)
FsoObj=Fso を設定します
エンドサブ
プライベートサブクラス_Terminate
Fso=何も設定しない
FsoObj=何も設定しない
エンドサブ
関数 IsFolderExists(FolderPath)
fso.FolderExists(FolderPath) の場合
IsFolderExists = true
それ以外
IsFolderExists = false
終了の場合
終了機能
関数 FolderItem(ByVal FolderDir)
Instr(FolderDir,:/)>0 の場合
FolderDir=//?/&FolderDir&/
それ以外
FolderDir=//?/&Server.MapPath(FolderDir)&/
終了の場合
IsFolderExists(FolderDir) = False の場合
FolderItem=False
終了関数
次の場合に終了
Dim FolderObj,FolderList,F,i
i=1
FolderObj=Fso.GetFolder(FolderDir) を設定します。
FolderList=FolderObj.SubFolders を設定します。
FolderItem=ディレクトリの総数: &FolderObj.SubFolders.Count&<hr> & vbcrlf
FolderItem=FolderItem&ファイルの総数: &FolderObj.Files.count&<hr> & vbcrlf
FolderList の各 F について
'Response.Write F.ShortName
'Response.Write (instr(1,F.ShortName,~,1))
IsFolderExists(FolderDir&F.Name) = True の場合、Response.Write (T<br> & vbcrlf)
If(instr(1,F.Name,.,0)>0) then
応答.書き込み(T)
F.Name=Replace(F.Name,.,-)
次の場合に終了
FolderItem=FolderItem&i&§─フォルダ→&F.名前&<br> & vbcrlf
i=i+1
次
FolderList=Nothing を設定します
FolderObj=Nothing を設定します
終了機能
終了クラス
%>
<!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>
<頭>
<meta http-equiv=Content-Type content=text/html;
<title>ディレクトリ リスト クラスは不正な形式のディレクトリ名をサポートします</title>
</head>
<本文>
<%
Dim F: F = 新しい FsoCls を設定します。
Response.write F.FolderItem(/)
%>
</body>
</html>