1. //〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★描★述★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓//
  2. //——————————————————————<[一只鱼]输出一个文件夹的目录结构>
  3. //〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★说★明★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓//
  4. //——————————————————————<创建日期:2009/01/06/14:14:00>
  5. //〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★常★量★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓//
  6. Unit4Size = "字节KBMBGB"
  7. OutFile = "OutTree.txt"
  8. 调用子程序 [文件夹]
  9. 调用子程序 [目录结构]
  10. 调用子程序 [选择项目的路径]
  11. 调用子程序 [项目文件大小]
  12. MsgBox "查看当前目录下的OutTree.txt",vbInformation,"完成 - 树状目录"
  13. 调用外部VBScript子程序 运行一个外部程序(OutFile)
  14. 脚本停止运行
  15. //〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★子程序★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓//
  16. 子程序 [选择项目的路径]
  17.     Dim theApp,SelPath,TreePath,TreeStr
  18.     Set theApp = CreateObject("Shell.Application")
  19.     Set SelPath = theApp.BrowseForFolder(0,"请选择需要列出子项目的路径",0)
  20.     如果表达式 (SelPath Is Nothing) 为真,则
  21.         调用子程序 [脚本停止运行]
  22.     条件结束
  23.     TreePath = SelPath.items.Item.Path
  24.     Set SelPathPath = Nothing
  25.     Set theApp = Nothing
  26. 子程序结束,回到调用处
  27. 子程序 [项目文件大小]
  28.     Dim objFSO
  29.     Set objFSO = CreateObject("Scripting.FileSystemObject")
  30.     如果表达式 (objFSO.GetFolder(TreePath).Size="") 为真,则
  31.         调用子程序 [脚本停止运行]
  32.     条件结束
  33.     TreeStr = TreePath & FormatSize(objFSO.GetFolder(TreePath).Size) & vbCrLf
  34.     Tree TreePath,""
  35.     Set objFile = objFSO.CreateTextFile(OutFile,True)
  36.     objFile.Write TreeStr
  37.     objFile.Close
  38.     Set objFile = Nothing
  39.     Set objFSO = Nothing
  40. 子程序结束,回到调用处
  41. 子程序 [文件夹]
  42.     sk= ""
  43.     sk=sk& VbCrLf & "Function FormatSize(SZ)"
  44.     sk=sk& VbCrLf & " Dim i"
  45.     sk=sk& VbCrLf & " Do While SZ > 1024"
  46.     sk=sk& VbCrLf & " i = i + 1"
  47.     sk=sk& VbCrLf & " SZ = SZ \ 1024"
  48.     sk=sk& VbCrLf & " Loop"
  49.     sk=sk& VbCrLf & " FormatSize = "" ("" & SZ & Mid(Unit4Size,1 + 2 * i,2) & "")"""
  50.     sk=sk& VbCrLf & "End Function "
  51.     execute(sk)
  52. 子程序结束,回到调用处
  53. 子程序 [目录结构]
  54.     sk= ""
  55.     sk=sk& VbCrLf & "Sub Tree(Path,SFSpace)"
  56.     sk=sk& VbCrLf & " Dim i,TempStr,FlSpace"
  57.     sk=sk& VbCrLf & " FlSpace = SFSpace & "" """
  58.     sk=sk& VbCrLf & " Set CrntFolder = objFSO.GetFolder(Path)"
  59.     sk=sk& VbCrLf & " i = 0:TempStr = ""├─"""
  60.     sk=sk& VbCrLf & " For Each ConFile In CrntFolder.Files"
  61.     sk=sk& VbCrLf & " i = i + 1"
  62.     sk=sk& VbCrLf & " If i = CrntFolder.Files.Count And CrntFolder.SubFolders.Count = 0 Then TempStr = ""└─"""
  63.     sk=sk& VbCrLf & " TreeStr = TreeStr & FlSpace & Tempstr & ConFile.name & FormatSize(ConFile.size) & vbCrLf"
  64.     sk=sk& VbCrLf & " Next"
  65.     sk=sk& VbCrLf & " i = 0:TempStr = ""├─"""
  66.     sk=sk& VbCrLf & " For Each SubFolder In CrntFolder.SubFolders"
  67.     sk=sk& VbCrLf & " i = i + 1"
  68.     sk=sk& VbCrLf & " If i = CrntFolder.SubFolders.Count Then"
  69.     sk=sk& VbCrLf & " TempStr = ""└─"""
  70.     sk=sk& VbCrLf & " SFSpace = FlSpace & "" """
  71.     sk=sk& VbCrLf & " Else"
  72.     sk=sk& VbCrLf & " SFSpace = FlSpace & ""│"""
  73.     sk=sk& VbCrLf & " End If"
  74.     sk=sk& VbCrLf & " TreeStr = TreeStr & FlSpace & TempStr & SubFolder.name & FormatSize(SubFolder.size) & vbCrLf"
  75.     sk=sk& VbCrLf & " Tree SubFolder,(SFSpace)"
  76.     sk=sk& VbCrLf & " Next"
  77.     sk=sk& VbCrLf & "End Sub"
  78.     execute(sk)
  79. 子程序结束,回到调用处
  80. 子程序 [脚本停止运行]
  81. 脚本停止运行
  82. 子程序结束,回到调用处
  83. //〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★备★注★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓//
  84. //【作 者】一只鱼               【QQ群】5619170
  85. //【E-Mail】ChapterRain@yahoo.com.cn      【致谢】欢迎使用鱼鱼制作的插件!!
  86. //〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓★结★束★〓〓〓〓〓〓〓〓〓〓〓〓☆〓〓//