From d037acf5e49a6f1e2c1f36914a46d84a3045f670 Mon Sep 17 00:00:00 2001 From: h677 Date: Sun, 24 May 2009 12:37:06 +0000 Subject: [PATCH] =?utf8?q?=E3=81=8A=E6=B0=97=E3=81=AB=E5=85=A5=E3=82=8A?= =?utf8?q?=E3=81=AE=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AE=E7=BD=AE?= =?utf8?q?=E3=81=8D=E6=8F=9B=E3=81=88=E3=82=BF=E3=82=A4=E3=83=9F=E3=83=B3?= =?utf8?q?=E3=82=B0=E3=81=AE=E5=A4=89=E6=9B=B4=20=E4=B8=80=E6=97=A6?= =?utf8?q?=E4=B8=80=E6=99=82=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=AB?= =?utf8?q?=E5=87=BA=E5=8A=9B=E3=81=97=E3=81=9F=E5=BE=8C=E3=81=AB=E3=80=81?= =?utf8?q?=E3=83=90=E3=83=83=E3=82=AF=E3=82=A2=E3=83=83=E3=83=97=E3=83=95?= =?utf8?q?=E3=82=A1=E3=82=A4=E3=83=AB=E3=81=B8=E3=81=AE=E5=A4=89=E6=9B=B4?= =?utf8?q?=E3=80=81=20=E6=AD=A3=E5=BC=8F=E3=83=95=E3=82=A1=E3=82=A4?= =?utf8?q?=E3=83=AB=E5=90=8D=E3=81=B8=E3=81=AE=E7=BD=AE=E3=81=8D=E6=8F=9B?= =?utf8?q?=E3=81=88=E3=82=92=E5=AE=9F=E6=96=BD=E3=81=99=E3=82=8B=E3=82=88?= =?utf8?q?=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Favorite.pas | 56 ++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/Favorite.pas b/Favorite.pas index 0b7bfa7..3a94a1a 100644 --- a/Favorite.pas +++ b/Favorite.pas @@ -425,31 +425,47 @@ end; procedure TFavoriteDM.WriteFavorite; var - FileName, tmpFileName: string; + FileName, tmpFileName, bakFileName: string; SaveList: TStringList; - + Buffer: array[0..MAX_PATH] of Char; // ƒoƒbƒtƒ@ + FileRep : Boolean; begin FavoriteDM.Modified := true; FileName := GikoSys.GetConfigDir + FAVORITE_FILE_NAME; - if FileExists(FileName) then begin - tmpFileName := GikoSys.GetConfigDir + '~' + FAVORITE_FILE_NAME; - if FileExists(tmpFileName) then - SysUtils.DeleteFile(tmpFileName); //SysUtils.‚ð‚‚¯‚È‚¢‚ÆWinAPI‚Æ‹æ•Ê‚Å‚«‚È‚¢‚Ì‚Å - RenameFile(FileName, tmpFileName); - end; SaveList := TStringList.Create; - try - SaveList.Add(''); - SaveList.Add(''); - try - AddSaveString(TreeView.Items.GetFirstNode.getFirstChild, SaveList); - except - end; - SaveList.Add(''); - SaveList.SaveToFile(FileName); - finally - SaveList.Free; - end; + tmpFileName := ''; + // ‘‚«ž‚Ý—pˆêŽžƒtƒ@ƒCƒ‹Žæ“¾ + if GetTempFileName(PChar(GikoSys.GetConfigDir), PChar('fav'), 0, Buffer) <> 0 then begin + tmpFileName := Buffer; + try + try + SaveList.Add(''); + SaveList.Add(''); + AddSaveString(TreeView.Items.GetFirstNode.getFirstChild, SaveList); + SaveList.Add(''); + // ˆêŽžƒtƒ@ƒCƒ‹‚Æ‚µ‚Ä•Û‘¶ + SaveList.SaveToFile(tmpFileName); + FileRep := True; + // ‘O‚̃tƒ@ƒCƒ‹‚ðˆÚ“®‚·‚é + if FileExists(FileName) then begin + bakFileName := GikoSys.GetConfigDir + '~' + FAVORITE_FILE_NAME; + if FileExists(bakFileName) then begin + FileRep := SysUtils.DeleteFile(bakFileName); //SysUtils.‚ð‚‚¯‚È‚¢‚ÆWinAPI‚Æ‹æ•Ê‚Å‚«‚È‚¢‚Ì‚Å + end; + if FileRep then begin + FileRep := RenameFile(FileName, bakFileName); + end; + end; + // ³‹K‚̃tƒ@ƒCƒ‹–¼‚ɃŠƒl[ƒ€‚·‚é + if FileRep then begin + FileRep := RenameFile(tmpFileName, FileName); + end; + except + end; + finally + SaveList.Free; + end; + end; end; procedure TFavoriteDM.AddSaveString(Node: TTreeNode; SaveList: TStringList); -- 2.11.0