如何得知某文件夹中有没文本文件。 ( 积分: 50 )

  • 主题发起人 主题发起人 yqplc
  • 开始时间 开始时间
Y

yqplc

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟机器与内网相连,别人有时会给我传个文本文件,但我不知道何时会发给我,我又不想不停地打开文件夹'd:/send/'去看别人有没有发给我,请教大虾们,如何在他发给我时自动打开这个文本?
 
用个定时器定时查询,
if FindFirst(TmpPath, faAnyFile, TmpSearchRec) = 0 then
begin
repeat
if ExtractFileExt(TmpSearchRec.Name) = 'txt'then
begin
....
end;
until FindNext(TmpSearchRec) <> 0;
FindClose(TmpSearchRec);
 
使用文件夹变化监控TShellChangeNotifier控件,在samples页上。
 
TmpPath := 你要监视的目录名 + '*.txt';
try
if FindFirst(TmpPath, faAnyFile, TmpSearchRec) = 0
then ShowMessage('发现TXT文件');
finally
FindClose(TmpSearchRec);
end;
 
文本文件应该不只包括EXE文件吧????
 
如果只判断'd:/send/'中有没有新增的文件,用上上两位的方法再加上一点对已有文件列表的保存就可以了。
关键正如 暗夜中独舞 所说的,要判断是文本文件的话,不只是TXT后缀的才肯定是文本文件,是TXT后缀的也不一定是文本文件。
而且,你怎么判定一个50%ASCII字符50%非ASCII字符的文件是一个文本文件呢?

假定,你定义>50%ASCII字符的文件是文本文件,那么可以有这样的方法:
定时搜索目录
如果有新增文件,Load文件
查询文件的每一个字节,判断<=$F0的字节数是不是>50%
如果是文本文件,调用记事本打开
 
后退
顶部