马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
【教程】递归遍历文件夹,自定义栈大小。
夜尽天明 14:10:03
哪位大佬教下 递归遍历文件的方法嘛
LokmenoWer 14:11:56
递归遍历文件,全称是递归遍历文件.夹
首先你先写一个遍历文件夹
然后在调用里面判断,遍历到的是文件 还是文件夹
if(目标是文件夹)
就把文件夹作为参数传入,调用函数自身.
end
夜尽天明 14:13:15
能写个示例吗 弄吧半天逛崩溃
等大神帮忙给个示例了
华 18:38:19
@夜尽天明 功能 递归遍历文件(路径) //路径="d:/IDM/"
变量 文件保存数组, 文件夹保存数组
文件遍历(路径, 文件保存数组, 文件夹保存数组)
变量 file_len = 数组大小(文件保存数组)
遍历(变量 ai = 0; ai < file_len; ai++)
调试输出(路径 & 文件保存数组[ai])
结束
变量 folder_len = 数组大小(文件夹保存数组)
遍历(变量 ai = 0; ai < folder_len; ai++)
递归遍历文件(路径 & 文件夹保存数组[ai] & "/")
结束
结束
夜尽天明 18:57:01
@华 谢谢,明天去搞一下
厚德载物。 19:15:54
递归调用自身,50--60次就递归爆栈了
文件夹的个数,不能超过50--60个
厚德载物。 19:24:46
@华 栈空间大小,在开辟线程时 就已经定义好了。
栈空间大小 默认为2M,递归调用自身,50--60次就爆栈了。
在开辟线程时,把栈空间 定义为20M,递归调用个几百次 应该不成问题。
厚德载物。 19:29:07
用win32 API开辟线程,自定义栈大小 是这样写的。
var count = 0
function 递归proc()
traceprint(cstring(count))
count++
if(count < 1000)
递归proc()
end
end
vat lpStartAddress, lpParameter, hThread, ThreadId
function 定义回调函数_点击()
var StackSize = 1024 * 1024 * 20 //20M
lpStartAddress = callbackmalloc("递归proc","dialogproc")
lpParameter = "参数"
hThread = CreateThread(null, StackSize, lpStartAddress, lpParameter, 0, ThreadId)
end
function 释放回调函数_点击()
CloseHandle(hThread)
callbackfree(lpStartAddress)
end
//开辟线程,win32 API函数
//为了让更多人看到,关键代码回复可见.
|