怎么在delphi中实现搜索系统TXT文件并把文件名 文件路径显示在listview上

另外还能对Listview列表中的文件进行转存改名删除操作... 另外还能对Listview列表中的文件进行转存 改名 删除操作 展开
 我来答
jra38343
2011-02-28 · TA获得超过876个赞
知道小有建树答主
回答量:985
采纳率:0%
帮助的人:741万
展开全部
e是文件夹路径,Filetpye 是文件类型,Tstr是一个TStrings,用来记录搜索出来的所有文件路径。你需要做的就是调用这个函数,并把Tstr导入到listview中
procedure FindFile(FindFileName:string; Filetpye : string ;Tstr:TStrings);
var
FSearchRec,
DSearchRec: TSearchRec;
FindResult: integer;
function IsDirNotation(ADirName: String): Boolean;
begin
Result := (ADirName = '.') or (ADirName = '..');
end;
begin
if FindFileName[Length(FindFileName)]<> '\' then
FindFileName:=FindFileName+'\';
FindResult := FindFirst(FindFileName+'*.*', faDirectory, DSearchRec);
//tstr.Add(FindFileName+fsearchrec.Name);
while FindResult = 0 do
begin
if ((DSearchRec.Attr and faDirectory) = faDirectory) and not
IsDirNotation(DSearchRec.Name) then
begin
FindFile(FindFileName+DSearchRec.Name,Filetpye,Tstr);
// tstr.Add(FindFileName+fsearchrec.Name);
end;
FindResult := FindNext(DSearchRec);
end;
FindResult := FindFirst(FindFileName+'*.*',faAnyFile+faHidden+
faSysFile,FSearchRec);
// tstr.Add(FindFileName+fsearchrec.Name);
try
while FindResult = 0 do
begin
//ShowMessage(FindFileName+fsearchrec.Name);
if Pos(Filetpye,FindFileName+fsearchrec.Name)>0 then
begin
tstr.Add(FindFileName+fsearchrec.Name);
end;
FindResult := FindNext(FSearchRec);

end;
finally
FindClose(FSearchRec);
end;
Findclose(DSearchRec);
end;
forestry98
2011-02-27 · TA获得超过2442个赞
知道小有建树答主
回答量:1351
采纳率:33%
帮助的人:559万
展开全部
假设搜索G盘的所有文件,存入数据库的 File 表的 Files 字段

procedure TForm1.GetDirsAndFiles(APath: String; AList: TStrings;
HasPath: Boolean);
var
F: TSearchRec;
FileName, RFileName: String;
begin
if FindFirst(APath + '\*.*', faAnyFile, F) = 0 then
repeat
FileName := F.Name;
if (FileName <> '.') and (FileName <> '..') then begin
if HasPath then
RFileName := APath + '\' + FileName
else
RFileName := FileName;
AList.Add(RFileName);
Caption := '搜索-' + RFileName;
if F.Attr and faDirectory <> 0 then
GetDirsAndFiles(APath + '\' + F.Name, AList);
end;
Application.ProcessMessages;
until FindNext(F) <> 0;
FindClose(F);
end;

procedure TForm1.btnSearchClick(Sender: TObject);
var
sList: TStringList;
begin
sList := TStringList.Create;
GetDirsAndFiles('G:',sList);
SaveToDB(sList);
sList.Free;
end;

procedure TForm1.SaveToDB(AList: TStrings);
var
i: Integer;
SQLText,sCount: String;
begin
con.Connected := True;
sCount := IntToStr(AList.Count - 1);
for i := 0 to AList.Count - 1 do begin
SQLText := 'INSERT INTO file (files) VALUES (''' + AList[i] + ''')';
try
with ado do begin
SQL.Text := SQLText;
ExecSQL;
end;
finally
end;
Application.ProcessMessages;
Caption := '存入数据库进度-' + IntToStr(i) + '/' + sCount;
end;
end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式