PB 遍历文件目录

一、演示图

在这里插入图片描述

二、使用

any a,b
string aa[],bb[]
int li_i

f_traversal_file(sle_path.text,lb_1,ref a,ref b)
 
aa = a
bb = b

for li_i = 1 to upperbound(aa)
	lb_2.additem(aa[li_i])
next

for li_i = 1 to upperbound(bb)
	lb_3.additem(bb[li_i])
next

三、创建function方法,命名为f_traversal_file

global type f_traversal_file from function_object
end type

forward prototypes
global subroutine f_traversal_file (string as_path, listbox a_listbox, ref any as_arrfolder, ref any as_arrfile)
end prototypes

global subroutine f_traversal_file (string as_path, listbox a_listbox, ref any as_arrfolder, ref any as_arrfile);//======================================================
//f_traversal_file
//------------------------------------------------------
//as_path : 文件夹路径
//a_listbox : 可视化listbox控件(需要在界面上的,可以隐藏控件)
//as_arrfolder : 返回文件夹路径数组
//as_arrfile : 返回文件路径数组
//======================================================
int li_flag = 0
long ll_i,ll_j
boolean lb_boolean = true
string ls_filename,ls_path
string ls_arrfolder[],ls_arrfile[],ls_savefolder[]
listbox lb_listbox

ls_path = as_path
lb_listbox = a_listbox
lb_boolean = true
ls_savefolder[1] = ls_path

do while lb_boolean
	li_flag = 0
	for ll_i = 1 to upperbound(ls_savefolder)
		ls_path = ls_savefolder[ll_i]
		if isnull(ls_path) then ls_path = ''
		if ls_path = '' then
			if li_flag <> 1 then li_flag = 0
		else
			lb_listbox.DirList(ls_path + "\*.*", 2+4+16)
			//
			for ll_j = 1 to lb_listbox.TotalItems()
				ls_filename = lb_listbox.text(ll_j)
				if ls_filename = '[..]' then continue
				//[文件夹]
				if leftw(ls_filename,1) = '[' and rightw(ls_filename,1) = ']' then 
					ls_filename = midw(ls_filename,2,lenw(ls_filename) - 2)
					ls_arrfolder[upperbound(ls_arrfolder) + 1] =  ls_path + '\' + ls_filename
					ls_savefolder[upperbound(ls_savefolder) + 1] =  ls_path + '\' + ls_filename
					li_flag = 1
				else //文件
					ls_arrfile[upperbound(ls_arrfile) + 1] = ls_path + '\' + ls_filename
				end if
			next
		end if
		ls_savefolder[ll_i] = ''
	next

	if li_flag = 1 then 
		lb_boolean = true
	else
		lb_boolean = false
	end if
loop

as_arrfolder = ls_arrfolder
as_arrfile = ls_arrfile

end subroutine


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值