如何使用 PowerBuilder 中的文件函数在任何目录(即 c:\,d:\ 等)中搜索 .txt 文件?
问问题
3720 次
2 回答
6
因此,如果您所做的只是查找文件,您可以使用 listbox.DirList() 来执行此操作,或者如果您想在不绑定到窗口或控件的情况下执行此操作,您可以调用 WinAPI 函数来执行此操作:
Function long FindFirstFileW (ref string filename, ref os_finddata findfiledata) library "KERNEL32.DLL" alias for "FindFirstFileW"
Function boolean FindNextFileW (long handle, ref os_finddata findfiledata) library "KERNEL32.DLL" alias for "FindNextFileW"
其中 os_finddata 定义为
unsignedlong ul_fileattributes
os_filedatetime str_creationtime
os_filedatetime str_lastaccesstime
os_filedatetime str_lastwritetime
unsignedlong ul_filesizehigh
unsignedlong ul_filesizelow
unsignedlong ul_reserved0
unsignedlong ul_reserved1
character ch_filename[260]
character ch_alternatefilename[14]
和 os_filedatetime 被定义为
unsignedlong ul_lowdatetime
unsignedlong ul_highdatetime
如果您想了解如何使用这些示例,请查看对象 (pfcapsrv.pbl)pfc_n_cst_filesrvunicode.of_DirList ()的 PFC(PowerBuilder 基础类,可在CodeXchange获得)。(顺便说一句,这就是复制这些原型和结构的地方。)
祝你好运,
特里
于 2010-04-30T18:13:21.890 回答
3
您可以使用ListBox
控件根据给定的字符串模式(*.txt、myfile.txt、.etc)获取文件/目录列表。查看DirList
帮助中的功能。这里有一个示例,展示了如何使用 ListBox 控件而不将其直观地放在窗口上。
string ls_files[]
window lw_1
listbox llb_1
int li_items, li_i
Open( lw_1 )
lw_1.openUserObject( llb_1 )
llb_1.DirList( sFileSpec, uFileType )
li_items = llb_1.TotalItems()
For li_i = 1 to li_items
ls_files[ li_i ] = llb_1.Text( li_i )
Next
lw_1.closeUserObject( llb_1 )
Close( lw_1 )
于 2010-04-22T20:40:46.107 回答