找回密码
 加入
搜索
查看: 3295|回复: 3

[系统综合] [已解决]想显示文件夹中文件在listview中,下面代码应怎样修改?

[复制链接]
发表于 2013-5-18 20:37:11 | 显示全部楼层 |阅读模式
本帖最后由 oceanwind 于 2013-5-18 23:03 编辑

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <SendMessage.au3>
#include <Array.au3>
#include <file.au3>
#include <Math.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
GUICreate("test", 220, 250, 100, 200)
Local $selected_file_foler = @ScriptDir & "\people_num",$msg
$image_file_listview = GUICtrlCreateListView("image file",10, 10, 200, 150)
GUISetState(@SW_SHOW )
_set_image_list($selected_file_foler)
While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case -3       
                           Exit       
                                                       
        EndSwitch
WEnd       
Func _set_image_list($passed_file_folder)
        Local $jpg_file_array,$si
    $jpg_file_array = _FileListToArray($passed_file_folder, "*.jpg", 1)
        _GUICtrlListView_DeleteAllItems($image_file_listview)
    For $i = 1 To $jpg_file_array[0]
                ;MsgBox(0,"",$jpg_file_array[1])
                GUICtrlCreateListViewItem ( $jpg_file_array[$si] , $image_file_listview)
        Next
EndFunc
发表于 2013-5-18 21:28:01 | 显示全部楼层
#include <file.au3>
#include <GuiListView.au3>
$form = GUICreate("test", 220, 250, 100, 200)
Local $msg
$image_file_listview = GUICtrlCreateListView("image file", 10, 10, 200, 150)
$list = GUICtrlGetHandle(-1)
$bt = GUICtrlCreateButton('选择文件夹', 70, 200, 85, 28)
GUISetState(@SW_SHOW)
While 1
        $msg = GUIGetMsg()
        Switch $msg
                Case -3
                        Exit
                Case $bt
                        _set_image_list()

        EndSwitch
WEnd
Func _set_image_list()
        Local $folder = FileSelectFolder('请选择一个目录', '', 1 + 2 + 4, @ScriptDir, $form)
        If @error Then Return
        _GUICtrlListView_DeleteAllItems($list)

        Local $jpg_file_array = _FileListToArray($folder, "*.jpg", 1)
        If IsArray($jpg_file_array) Then
                _GUICtrlListView_BeginUpdate($list)
                For $i = 1 To $jpg_file_array[0]
                        _GUICtrlListView_AddItem($list, $jpg_file_array[$i])
                Next
                _GUICtrlListView_EndUpdate($list)
        EndIf
EndFunc

评分

参与人数 1金钱 +10 收起 理由
oceanwind + 10 谢谢朋友

查看全部评分

 楼主| 发表于 2013-5-18 21:59:33 | 显示全部楼层
user3000 发表于 2013-5-18 21:28

谢谢,这样可以
但是我就是不想手动选择文件夹。
另外为啥用循环加入就不行,但是用
GUICtrlCreateListViewItem ( $jpg_file_array[1] , $image_file_listview)
一个一个添加又可以,是啥原因呢?
 楼主| 发表于 2013-5-18 23:02:28 | 显示全部楼层
回复 2# user3000
我原码换成你用的函数_GUICtrlListView_AddItem($image_file_listview, $jpg_file_array[$i])
后成功了
谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-17 20:27 , Processed in 0.071755 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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