读书人

多资料操作

发布时间: 2013-07-04 11:45:40 作者: rapoo

多文件操作
怎样在pb9.0中调用API函数进行多文件的导入,例如将多个文件同时导入数据库? API 数据库 多文件
[解决办法]
方案:先抓取文件夹,然后再读取文件夹中的各文件名。

//文件夹浏览通用对话框API函数
FUNCTION Long SHBrowseForFolder (REF str_BROWSEINFO lpBrowseInfo) LIBRARY "shell32.dll" ALIAS FOR "SHBrowseForFolderA;Ansi"
SUBROUTINE CoTaskMemFree (Long hMem ) LIBRARY "ole32.dll"
FUNCTION Long SHGetPathFromIDList(long pidList, REF string lpBuffer) LIBRARY "shell32.dll" ALIAS FOR "SHGetPathFromIDListA;Ansi"

global type str_browseinfo from structure
longhwndowner
longpidlroot
stringdisplayname
stringtitle
longflags
longpfn
longparam
stringimage
end type



String ls_ReturnPathName
Long ll_rc
str_BROWSEINFO lstr_Info
Long ll_pIDlRoot
Long ll_BrowseInfoFlags

ls_ReturnPathName = Space( 256 )
ll_browseinfoflags = BIF_RETURNONLYFSDIRS + BIF_USENEWUI

//初始化结构browseinfo
lstr_info.hWndOwner = Handle( This )
lstr_info.DisplayName = ls_ReturnPathName
lstr_info.Title = "请选择文件夹目录:"
lstr_info.pidlroot = ll_pIDlRoot
lstr_info.flags = ll_BrowseInfoFlags

//显示文件夹浏览对话框
ll_rc = SHBrowseForFolder( lstr_Info )

IF ll_rc > 0 THEN

SHGetPathFromIDList( ll_rc, ls_ReturnPathName)

//释放内存
CoTaskMemFree(ll_rc)

Return RightTrim(ls_ReturnPathName)
Else
Return ""
End If



读书人网 >PB

热点推荐