您的位置:程序门 -> vb -> 基础类



如何修改这些代码使得一次把一个文件夹或者多个文件或文件夹同时拖入一个listbox后列出所有文件夹包含的文件或者所有一次性拖入的文件的


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何修改这些代码使得一次把一个文件夹或者多个文件或文件夹同时拖入一个listbox后列出所有文件夹包含的文件或者所有一次性拖入的文件的[已结贴,结贴人:yurilin]
发表于:2007-07-15 12:36:46 楼主
private   sub   list1_oledragdrop(data   as   dataobject,   effect   as   long,   button   as   integer,   shift   as   integer,   x   as   single,   y   as   single)


list1.clear
if   data.getformat(vbcffiles)   then   list1.additem   data.files(1)


form_load事件中
list1.oledropmode   =   1

**********************************

以上代码可以拖动一个文件.多个文件就会自动选择一个文件

请问如果拖入一个或多个文件夹或者多个文件时

如何能够全部列出文件夹中的文件或者是所有多个文件

谢谢.
发表于:2007-07-15 14:05:101楼 得分:5
找个遍历文件夹的例子参考
发表于:2007-07-15 14:21:552楼 得分:0
拖放多个文件已经解决了。如何拖放文件夹得到里面所有文件的路径?
如下修改可以拖放多个文件同时列出

list1.clear
        'if   data.getformat(vbcffiles)   then   list1.additem   data.files(1)
        dim   t   as   integer,   ti   as   integer
        on   error   resume   next
        for   t   =   1   to   data.files.count
        list1.additem   data.files(t)
        '以下三种方法,依次为路径、文件名、路径+文件名,先取第三种方法。
        'list1.additem   left(data.files(t),   instrrev(data.files(t),   "\ "))
        'list2.additem   mid(data.files(t),   instrrev(data.files(t),   "\ ")   +   1)
        'list3.additem   data.files(t)
        next   t   '多个文件拖入时
发表于:2007-07-15 18:22:433楼 得分:0
这个帖子已经不能删除了。
论坛要考虑下这种情况,虽然也已经考虑过了我知道。
发表于:2007-07-16 16:54:254楼 得分:0
要分得进来,散分。
发表于:2007-07-16 19:18:195楼 得分:10
偶要  
all   give   me
发表于:2007-07-16 20:00:456楼 得分:25
option   explicit
dim   ispause   as   boolean,   issearch   as   boolean,   isstop   as   boolean
private   sub   form_load()
list1.oledropmode   =   1
restorepublic
end   sub

private   sub   list1_oledragdrop(data   as   dataobject,   effect   as   long,   button   as   integer,   shift   as   integer,   x   as   single,   y   as   single)
list1.clear
dim   t   as   integer,   ti   as   integer
'on   error   resume   next
for   t   =   1   to   data.files.count
        if   data.getformat(vbcffiles)   then   list1.additem   data.files(t)
        if   getattr(data.files(t))   and   vbdirectory   then
                seacheruserdir   data.files(t),   true
        end   if
next   t
end   sub

private   sub   seacheruserdir(byval   strpath   as   string,   optional   byval   ischecksub   as   boolean   =   true)
' '原作者:chenhui530   于   2007-3-17   21:55
        static   sum   as   long
        dim   strfolders()   as   string,   dirs   as   integer,   i   as   integer
        if   right(strpath,   1)   <>   "\ "   then   strpath   =   strpath   &   "\ "
        dim   strtmp   as   string
        on   error   resume   next
        strtmp   =   dir(strpath   &   "*.* ",   1   or   2   or   4   or   vbdirectory)
        do   while   strtmp   <>   " "
                sum   =   sum   +   1
                if   sum   mod   20   =   0   then   doevents
                if   getattr(strpath   &   strtmp)   and   vbdirectory   then
                        if   left(strtmp,   1)   <>   ". "   then
                                form1.list1.additem   strpath   &   strtmp
                                'sendmessage   form1.list1.hwnd,   wm_vscroll,   sb_bottom,   0&
                                redim   preserve   strfolders(0   to   dirs)
                                strfolders(dirs)   =   strpath   &   strtmp   &   "\ "
                                dirs   =   dirs   +   1
                        end   if
                else
                        form1.list1.additem   strpath   &   strtmp
                        'sendmessage   form1.list1.hwnd,   wm_vscroll,   sb_bottom,   0&
                end   if
                strtmp   =   dir
        loop
        if   not   ischecksub   then   exit   sub
        for   i   =   0   to   dirs   -   1
                if   isstop   then   issearch   =   false:   exit   for
                seacheruserdir   strfolders(i),   ischecksub
        next
end   sub
private   sub   restorepublic()
        isstop   =   false
        ispause   =   false
        issearch   =   false
end   sub




快速检索

最新资讯
热门点击