关于文件查找的问题(200分)

  • 主题发起人 主题发起人 xuzhic2001
  • 开始时间 开始时间
X

xuzhic2001

Unregistered / Unconfirmed
GUEST, unregistred user!
我的一个文件夹里面可能有两类文件:其中一种是.txt文件(肯定有),另外一种的格式不固定(可能有也可能没有,如果有的话就和.txt类别的文件同名,),我现在通过opendialog打开了这个.txt文件,在打开这个文件的同时如果存在另外一种后缀的文件,就把这种后缀的文件拷贝到我的一个目录下面,如果不存在另外一种后缀,我就把.txt类型的文件拷贝过去,不知道高手有没有好的方法,我现在的困难是怎么查找同txt类型同名的另类后缀的文件.
 
procedure AddFilesToList(Filter, Folder: string; Files: TStringList);
var
sr: TSearchRec;
begin
if FindFirst (Folder + Filter, faAnyFile, sr) = 0 then
repeat
Files.Add (Folder + sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
end;

function GetNoTxtFileName(const TxtFileName: TFileName): TFileName;
var
TempStrs: TStringList;
I: Integer;
begin
Result := TxtFileName; //返回*.txt文件
TempStrs := TStringList.Create;
try
AddFilesToList(ChangeFileExt(ExtractFileName(TxtFileName), '.*'), ExtractFilePath(TxtFileName), TempStrs);
for I := 0 to TempStrs.Count - 1 do
if ExtractFileExt(TempStrs) <> '.txt' then
begin
Result := TempStrs; //找到一个非*.txt文件,并返回其文件名
Break;
end;
finally
TempStrs.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Memo1.Lines.Add(GetNoTxtFileName(OpenDialog1.FileName));
end;
end;
 
在研究中,有些地方还没有看懂,先谢谢了
 
后退
顶部