读书人

Delphi 像Windows同样 新建文件时重复

发布时间: 2013-11-01 14:43:02 作者: rapoo

Delphi 像Windows一样 新建文件时重复时 重命名文件名
请看Windows在新建Text文本时是如何工作的?

情况一:

第1次新建一个Txt文本 文件名为 新建文本文档

第2次新建一个Txt文本 文件名为 新建文本文档 (2)

第3 次新建一个Txt文本 文件名为 新建文本文档 (3)

...

第n 次新建一个Txt文本 文件名为 新建文本文档 (n)


情况二:

第1次新建一个Txt文本 文件名为 新建文本文档

第2次新建一个Txt文本 文件名为 新建文本文档 (2)

第3 次新建一个Txt文本 文件名为 新建文本文档 (3)

...

第n 次新建一个Txt文本 文件名为 新建文本文档 (n)

假设把 新建文本文档 这个文件删除 再次新建文件时的文件名又会是 新建文本文档

Windows在创建文件时会判断某个文件是否存在,请问如何用Delphi实现这样的功能?

保存文件就用Memo1.Lines.SaveToFile( );行了

如何实现这个 文件重命名是关键
Delphi 像Windows同样 新建文件时重复时 重命名文件名 DELPHI?
[解决办法]


var
Buf: TStringList;
i: Integer;
S, s1, sName, sExt: AnsiString;
begin
sExt := '.txt';
sName := '新建文本文件';
s := sName + sExt;
i := 1;
if FileExists(s) then
begin
begin
s1 := sName + '(' + inttostr(i) + ')' + sExt;
while FileExists(s1) do
begin
Inc(i);
s1 := sName + '(' + inttostr(i) + ')' + sExt;
end;
end;
begin
Buf := TStringList.Create;
Buf.SaveToFile(s1);
Buf.Free;
end;
end
else
begin
Buf := TStringList.Create;
Buf.SaveToFile(s);
Buf.Free;
end;
end;

[解决办法]
太费事的话直接用shell api SHFileOperation,创建文件或目录自动重命名、删除带子目录的目录都是相当方便可靠。

读书人网 >.NET

热点推荐