如何得到某目录下的一个唯一文件名(临时文件)?(20分)

  • 主题发起人 主题发起人 quaver
  • 开始时间 开始时间
好像每个目录下的文件名都是唯一的,不知所云?!
 
GetTempFileName
 
Uses Sysutils

IF FileExists(


OR


procedure TForm1.Button1Click(Sender: TObject);

var
sr: TSearchRec;
FileAttrs: Integer;
begin
StringGrid1.RowCount := 1;
if CheckBox1.Checked then
FileAttrs := faReadOnly
else
FileAttrs := 0;
if CheckBox2.Checked then
FileAttrs := FileAttrs + faHidden;
if CheckBox3.Checked then
FileAttrs := FileAttrs + faSysFile;
if CheckBox4.Checked then
FileAttrs := FileAttrs + faVolumeID;
if CheckBox5.Checked then

FileAttrs := FileAttrs + faDirectory;
if CheckBox6.Checked then
FileAttrs := FileAttrs + faArchive;
if CheckBox7.Checked then

FileAttrs := FileAttrs + faAnyFile;

if FindFirst(Edit1.Text, FileAttrs, sr) = 0 then

begin
with StringGrid1 do
begin
if (sr.Attr and FileAttrs) = sr.Attr then
begin
Cells[1,RowCount-1] := sr.Name;
Cells[2,RowCount-1] := IntToStr(sr.Size);
end;
while FindNext(sr) = 0 do
begin
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[1, RowCount-1] := sr.Name;

Cells[2, RowCount-1] := IntToStr(sr.Size);
end;
end;
FindClose(sr);
end;
end;
end;
 
呵呵,被delphiking抢先了,只好当当翻译了
GetTempFileName(目录名,文件名头三个字符,0,接收文件名的字符串);
其中 目录名 和 文件名头三个字符 都必须是pchar型的字符串(可以用字符串常量)
0是要求自动生成临时文件的序号,并保证在目录中唯一。如果填入其他数字,就直接用
这个数字来做文件序号
最后是用来存放生成的文件名的字符串。
例如 GetTempFileName('.','hehe',0,s);后
s的值为‘./heh9.tmp’
 
多人接受答案了。
 
后退
顶部