大侠帮我改改以下代码,用vbs如何创建多层文件夹

来源:百度知道 编辑:UC知道 时间:2024/07/02 19:43:51
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim foldernm,mdarry
'文件夹名称中间用,隔开
foldernm="0,1,2,3,4,5,6,7,8,9"
'将名称读进数组
mdarry=Split(foldernm,",")
For Each i In mdarry
fso.CreateFolder(i)
For Each j In mdarry
fso.CreateFolder(i&"\"&j)
For Each k In mdarry
fso.CreateFolder(i&"\"&j&"\"&k)
For Each l In mdarry
fso.CreateFolder(i&"\"&j&"\"&k&"\"&l)
For Each m In mdarry
fso.CreateFolder(i&"\"&j&"\"&k&"\"&l&"\"&m)
For Each n In mdarry
fso.CreateFolder(i&"\"&j&"\"&k&"\"&l&"\"&m&"\"&n)
For Each o In mdarry
fso.CreateFolder(i&"\"&j&"\"&k&"\"&l&"\"&m&"\"&n&&qu

函数生成代码法:不需要变量,函数会根据foldermn内容自动生成代码:

你只要指定foldername="0,1,2,....,n",n为任意字符或字符串(其实超过5层运行时间就很长).

函数会根据foldername自动生成文件夹树代码。然后通过execute执行生成的代码

程序如下,根据foldernm内容在C盘根目录生成文件夹树:

========================================================
Set fso = CreateObject("Scripting.FileSystemObject")
foldernm="0,1,3,4,5,6,7,8,9,ni hao"
mdarry=Split(foldernm,",")

execute code(mdarry)

function code(mdarry)
a1="for each i":a2=" in mdarry":b1="fso.createfolder(":b2=")":c="next":j=0
for each i in mdarry
code=code&a1&cstr(j)&a2&vbcrlf&b1&nm(j)&b2&vbcrlf:d=d&vbcrlf&c:j=j+1
next:code=code&d
end function

function nm(i)
for j=0 to i:nm=nm&"&"&"i"&cstr(j)&"&"&chr(34)&"\"&chr(34):next
nm=left(nm,len(nm)-4):nm=chr(34)&"c:\"&chr(3