高手来帮我解决下啊。(我现在只能给100分的。不好意思,新手)
===========================
打开 DELPHI2009 新建一个From 然后放一个BUTTON和一个opendialog控件。
opendialog只设一个属性:ofAllowMultiSelect = True (允许多选)----------------------------------------------------Button点击事件:
if OpenDialog1.Execute then
showmessage(inttostr(opendialog1.Files.Count));------------------------------------------------------
就这一行代码结果文件数不对?????怎么回事。程序打开对话框后。我选择的是windows\system32\目录。然后ctrl+A
这时就会跳出一共多少个文件是吧。手工去SYSTEM32目录查看得到的结果是:3420个文件,214个文件夹.
而这个ShowMessage得到的结果是:2319 ????何解??我全选所有文件类型的。
包括隐藏文件也是选了的。
===========================
打开 DELPHI2009 新建一个From 然后放一个BUTTON和一个opendialog控件。
opendialog只设一个属性:ofAllowMultiSelect = True (允许多选)----------------------------------------------------Button点击事件:
if OpenDialog1.Execute then
showmessage(inttostr(opendialog1.Files.Count));------------------------------------------------------
就这一行代码结果文件数不对?????怎么回事。程序打开对话框后。我选择的是windows\system32\目录。然后ctrl+A
这时就会跳出一共多少个文件是吧。手工去SYSTEM32目录查看得到的结果是:3420个文件,214个文件夹.
而这个ShowMessage得到的结果是:2319 ????何解??我全选所有文件类型的。
包括隐藏文件也是选了的。
解决方案 »
- ■■■实时信息如何做?高手请进!!■■■
- 怎样给richedit边框画成黑线?(在线)
- 很简单的问题:如何让几个TTable连接到TDatabase所连接到的数据库?
- 怎样控制某一列的是否显示
- 转让一张29号 上海到南昌 L77
- 9月3日是法定的中国抗战胜利纪念日
- 数据库操作问题:如何把行按某一条件sum后,写入对应的列中!
- 帮我看看如何用合理的程序结构来处理这个问题?
- 有人能告诉我tlistview的checked box被点时,具体引发的是哪一个事件吗?
- 散分。顺便问一下,现在是上班时间,为何大家都在这里,请大家随便说说。
- DBGridEh OptionsEh -> dghShowRecNo = true 显示行号 问题
- 工作两年多,有时候觉得自己啥也不会
格式
只显示exe文件 exe文件(*.exe)|*.exe
exe文件(*.exe)显示在文件类型里,中间用|隔开,|后面代表过滤exe以外的其他类型文件
opendialog1.filter:='所有文件(*.*)|*.*';
opendialog1.filter:='文本文件(*.txt)|*.txt';
opendialog1.filter:='文本文件(*.txt)|*.txt|FLASH文件(*.swf)|*.swf';
如果显示2个以上的类型,中间用;隔开,如:
支持文件类型(*.swf;*.jpg)|*.swf;*.jpg
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm3 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form3: TForm3;implementation{$R *.dfm}procedure TForm3.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then begin
showmessage(inttostr(opendialog1.Files.Count));
//这里显示2319个.
memo1.Text := opendialog1.Files.Text;
end;end;end.提到的文件列表:
C:\WINDOWS\system32\wmv9vcm.dll
C:\WINDOWS\system32\WMVADVD.dll
C:\WINDOWS\system32\WMVADVE.DLL
C:\WINDOWS\system32\wmvcore.dll
C:\WINDOWS\system32\WMVDECOD.dll
C:\WINDOWS\system32\wmvdmod.dll
C:\WINDOWS\system32\wmvdmoe2.dll
C:\WINDOWS\system32\wmvds32.ax
C:\WINDOWS\system32\WMVENCOD.dll
C:\WINDOWS\system32\WMVSDECD.dll
C:\WINDOWS\system32\WMVSENCD.dll
C:\WINDOWS\system32\WMVXENCD.dll
C:\WINDOWS\system32\wow32.dll
C:\WINDOWS\system32\wowdeb.exe
C:\WINDOWS\system32\wowexec.exe
C:\WINDOWS\system32\wowfax.dll
C:\WINDOWS\system32\wowfaxui.dll
C:\WINDOWS\system32\wpa.dbl
C:\WINDOWS\system32\wpd_ci.dll
C:\WINDOWS\system32\wpdconns.dll
C:\WINDOWS\system32\wpdmtp.dll
C:\WINDOWS\system32\wpdmtpdr.dll
C:\WINDOWS\system32\wpdmtpus.dll
C:\WINDOWS\system32\WpdShext.dll
C:\WINDOWS\system32\wpdshextautoplay.exe
C:\WINDOWS\system32\wpdshextres.dll
C:\WINDOWS\system32\WPDShServiceObj.dll
C:\WINDOWS\system32\wpdsp.dll
C:\WINDOWS\system32\wpdtrace.dll
C:\WINDOWS\system32\wpnpinst.exe
C:\WINDOWS\system32\write.exe
C:\WINDOWS\system32\ws2_32.dll
C:\WINDOWS\system32\ws2help.dll
C:\WINDOWS\system32\wscntfy.exe
C:\WINDOWS\system32\wscript.exe
C:\WINDOWS\system32\wscsvc.dll
C:\WINDOWS\system32\wscui.cpl
C:\WINDOWS\system32\wsecedit.dll
C:\WINDOWS\system32\wshatm.dll
C:\WINDOWS\system32\wshbth.dll
C:\WINDOWS\system32\wshchs.dll
C:\WINDOWS\system32\wshcon.dll
C:\WINDOWS\system32\wshext.dll
C:\WINDOWS\system32\wship6.dll
C:\WINDOWS\system32\wshisn.dll
C:\WINDOWS\system32\wshnetbs.dll
C:\WINDOWS\system32\wshom.ocx
C:\WINDOWS\system32\WshRm.dll
C:\WINDOWS\system32\wshtcpip.dll
C:\WINDOWS\system32\wsnmp32.dll
C:\WINDOWS\system32\wsock32.dll
C:\WINDOWS\system32\wstdecod.dll
C:\WINDOWS\system32\wstpager.ax
C:\WINDOWS\system32\wstrenderer.ax
C:\WINDOWS\system32\wtsapi32.dll
C:\WINDOWS\system32\wuapi.dll
C:\WINDOWS\system32\wuapi.dll.mui
C:\WINDOWS\system32\wuauclt1.exe
C:\WINDOWS\system32\wuauclt.exe
C:\WINDOWS\system32\wuaucpl.cpl
C:\WINDOWS\system32\wuaucpl.cpl.manifest
C:\WINDOWS\system32\wuaucpl.cpl.mui
C:\WINDOWS\system32\wuaueng1.dll
C:\WINDOWS\system32\wuaueng.dll
C:\WINDOWS\system32\wuaueng.dll.mui
C:\WINDOWS\system32\wuauserv.dll
C:\WINDOWS\system32\wucltui.dll
C:\WINDOWS\system32\wucltui.dll.mui
C:\WINDOWS\system32\wupdmgr.exe
C:\WINDOWS\system32\wups2.dll
C:\WINDOWS\system32\wups.dll
C:\WINDOWS\system32\wuweb.dll
C:\WINDOWS\system32\wzcdlg.dll
C:\WINDOWS\system32\wzcsapi.dll
C:\WINDOWS\system32\wzcsvc.dll
C:\WINDOWS\system32\x3daudio1_0.dll
C:\WINDOWS\system32\x3daudio1_1.dll
C:\WINDOWS\system32\x3daudio1_2.dll
C:\WINDOWS\system32\X3DAudio1_3.dll
C:\WINDOWS\system32\xactengine2_0.dll
C:\WINDOWS\system32\xactengine2_1.dll
C:\WINDOWS\system32\xactengine2_2.dll
C:\WINDOWS\system32\xactengine2_3.dll
C:\WINDOWS\system32\xactengine2_4.dll
C:\WINDOWS\system32\xactengine2_5.dll
C:\WINDOWS\system32\xactengine2_6.dll
C:\WINDOWS\system32\xactengine2_7.dll
C:\WINDOWS\system32\xactengine2_8.dll
C:\WINDOWS\system32\xactengine2_9.dll
C:\WINDOWS\system32\xactengine3_0.dll
C:\WINDOWS\system32\xactsrv.dll
C:\WINDOWS\system32\XAudio2_0.dll
C:\WINDOWS\system32\xcopy.exe
C:\WINDOWS\system32\xenroll.dll
C:\WINDOWS\system32\xercesLib.dll
C:\WINDOWS\system32\xercesxmldom.dll
C:\WINDOWS\system32\xinput1_1.dll
C:\WINDOWS\system32\xinput1_2.dll
C:\WINDOWS\system32\xinpu
看最后一个都显示不完。
还有一些常用的也没显示出来。
如:
2006-07-28 09:30 62,744 xinput1_2.dll
2007-04-04 18:53 81,768 xinput1_3.dll
2005-12-05 18:07 61,136 xinput9_1_0.dll
2010-10-16 17:25 <DIR> xircom
2008-04-14 20:00 28,288 xjis.nls
2010-06-03 15:29 26 xlhcc.dat
2008-04-14 20:00 121,856 xmllite.dll
2008-04-14 20:00 129,024 xmlprov.dll
2008-04-14 20:00 50,176 xmlprovi.dll
2008-08-30 03:00 952,320 xmlrtl120.bpl
2008-08-30 03:00 118,616 xmlrtl120.jdbg
2008-04-14 20:00 11,776 xolehlp.dll
2008-04-14 20:00 738,304 xpob2res.dll
2008-04-14 20:00 161,280 xpsp1res.dll
2008-04-14 20:00 5,535,744 xpsp2res.dll
2008-04-14 20:00 1,121,280 xpsp3res.dll
2010-08-27 07:13 7,680 xpsp4res.dll
2003-02-28 16:38 113 zonedoff.reg
2003-02-28 16:38 113 zonedon.reg
2008-04-14 20:00 75 查看频道.scf
2001-11-13 23:09 1,683,456 热带鱼屏保.scr还掉了些其它的。
其它全部默认大家可以测试一下。看看你们是不是也这样?我的程序弄出来。放到其它电脑上面也是这个结果。我一晚没睡好了。。
d:\123
在123这个目录里面放很多TXT文件。用上面的代码也是一样的结果
hidereadonly设为false
hidereadonly设为false
OPENFILENAME 里面有个成员叫nMaxFile,是tchar,他表示一个文件的完整路径,如果这个路径超过预设范围就会跳过该文件,Delphi默认的这个值比较小,你去改大一些就没问题了Delphi默认是260,对于 ANSI 版本,它指的是字节数。对于 Unicode 版本,它指的是字符数,该缓冲必须足够大才干存储文件的路径字符串,包含结尾空字符。只要有一个文件超过了该缓冲区,那么就直接break了,后面所有文件都不会选中了只要把这个值改大就可以了,这不是Delphi的错误,是windows默认的,我试过了,BCb,VC,C#都一样的,不修改都显示不正确