当前位置: 代码迷 >> PB >> 多资料操作
  详细解决方案

多资料操作

热度:71   发布时间:2016-04-29 06:47:27.0
多文件操作
怎样在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
long hwndowner
long pidlroot
string displayname
string title
long flags
long pfn
long param
string image
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



  相关解决方案