找回密码
 加入
搜索
查看: 7158|回复: 14

[AU3基础] (已解决)既选择文件夹又选择文件?把FileSelectFolder和FileOpenDialog结合起来?

  [复制链接]
发表于 2010-12-21 10:58:49 | 显示全部楼层 |阅读模式
本帖最后由 yarsye 于 2011-1-4 13:04 编辑

想实现这样的功能:
1.可以多选文件夹。
2.可以多选文件。
3.可以同时实现2和1.

当用FileSelectFolder时,只会返回单个文件夹位置,不能多选。
当用FileOpenDialog时,可以实现表面上多选文件夹但是却不能真正多选,当选择2个文件夹时,点击打开,就进入另外一个文件夹里面去了。选择2个文件是OK的,返回路径中间有个‘|’分开的。

可以实现这复杂的功能吗?

已解决:换个思路走了
发表于 2010-12-21 12:45:21 | 显示全部楼层
楼主的意思是一只手拿两张刀来使用?
发表于 2010-12-21 12:59:27 | 显示全部楼层
楼主是这个意思吗  我觉得可能不行 因为好多类似的软件不行 就算是能行 也会造成操作不方便 比如我双击一个文件夹  应该判断为打开呢 还是选择并添加呢?  留名等高人出一个完美的解决方案

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-12-21 13:08:56 | 显示全部楼层
回复 3# zch11230


    其实我要做的是就是选择你上图中的那4个文件(2个文件夹+2个文件)然后一起导到另外一个地方。
 楼主| 发表于 2010-12-21 13:11:58 | 显示全部楼层
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Include <File.au3>
#Include <Array.au3>
#Region ### START Koda GUI section ### Form=d:\4 study\autoit\code\ctl file copying utility\form2.kxf
$Gui = GUICreate("Server File Copying Utility", 619, 590, 249, 122)
GUISetBkColor(0x99B4D1)
$ListBox1 = GUICtrlCreateListView("Name|Size", 0, 144, 289, 240)

list(@AppDataCommonDir)

$Button1 = GUICtrlCreateButton(">", 4, 87, 30, 25)
$Button2 = GUICtrlCreateButton(">>", 260, 88, 31, 25)
$Button3 = GUICtrlCreateButton("<", 565, 89, 31, 25)
$Button4 = GUICtrlCreateButton("<<", 317, 90, 32, 25)
$ListBox2 = GUICtrlCreateList("", 312, 144, 289, 240)
GUICtrlSetData(-1, "")
$Input1 = GUICtrlCreateInput("Input1", 56, 48, 233, 21)
$Input2 = GUICtrlCreateInput("Input1", 376, 48, 225, 21)
$Label1 = GUICtrlCreateLabel("System1", 8, 8, 67, 17)
$Label2 = GUICtrlCreateLabel("System2", 320, 8, 43, 17)
$Label3 = GUICtrlCreateLabel("Location", 8, 48, 45, 17)
$Label4 = GUICtrlCreateLabel("Location", 320, 48, 45, 17)
$Edit1 = GUICtrlCreateEdit("", 0, 432, 609, 129)
GUICtrlSetData(-1, "Edit1")
$Log = GUICtrlCreateLabel("Log", 0, 408, 22, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
;~                 Case $Button1
;~                         $Button1FileOpenDialog = FileOpenDialog('Select the Files in your server','','所有文件(*.*)',4)
        EndSwitch
WEnd
;=====================Functions below=====================
Func list($dirname)
        $FileList = _FileListToArray($dirname)
        If UBound($FileList) <> '' Then
                For $i = 1 To $FileList[0]
                        If StringInStr(FileGetAttrib($FileList[$i]), 'D') Then
                                GUICtrlCreateListViewItem($dirname & '\' & $FileList[$i] & '||文件夹', $ListBox1)
                        Else
                                GUICtrlCreateListViewItem($dirname & '\' & $FileList[$i] & '|' & FileGetSize($dirname & '\' & $FileList[$i]) & '|?', $ListBox1)
                        EndIf
                Next
        EndIf
Endfunc   ;==>list
正在努力使用fileopendialog来代替要实现的功能 ,选择2个文件夹 或者2个文件然后复制到服务器的另外一个地方
 楼主| 发表于 2010-12-21 13:23:21 | 显示全部楼层
回复 2# mo_shaojie


    FileSelectFolder可以选择多文件夹吗?貌似不行
FileOpenDialog当选2个文件夹时也是不行的 。
或者有其他的UDF函数吗?
发表于 2010-12-21 14:06:12 | 显示全部楼层
围观中。。
 楼主| 发表于 2010-12-21 14:10:44 | 显示全部楼层
欢迎围观
发表于 2010-12-21 14:54:42 | 显示全部楼层
这个我觉得用ListView控件应该可以实现,思路就是先要有个input作为路径数据来源,然后读取input中的那个路径,有了路径就能检索,然后将检索到的文件和文件夹显示到ListView控件中,然后在ListView控件中进行选择,ListView的扩展功能还是蛮丰富的,说不定用TreeView也行~
 楼主| 发表于 2010-12-21 20:41:43 | 显示全部楼层
回复 9# 飘云


    在研究treeview 真的很多函数 好复杂
发表于 2010-12-21 21:28:26 | 显示全部楼层
;用循环做多次选择解决
Global $FolderA

$Select = FileSelectFolder()
$i = 0
While $Select<>""
        
        ReDim $FolderA[ $i + 1]
        $FolderA[$i] = $Select
        $i += 1
        $Select = FileSelectFolder()
        
WEnd


;处理所有文件夹文件 + 选择文件到 文件数组

...

;遍历文件数组,处理某一文件

...
 楼主| 发表于 2010-12-22 11:35:00 | 显示全部楼层
回复 11# _ddqs.


    Redim这样不行吧
发表于 2010-12-22 11:45:28 | 显示全部楼层
回复 12# yarsye


先全局
    Global $FolderA[1]
 楼主| 发表于 2010-12-22 12:06:45 | 显示全部楼层
回复 13# _ddqs.


    OK Thank you

接下来就是处理数组了

不过最好一次能搞定就好了 要不然我要选20文件夹 还得弹出来20次
发表于 2015-1-5 11:49:52 | 显示全部楼层
感谢了,希望提供能选中某一类型文件
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-10 06:57 , Processed in 0.085867 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表