FavoriteDM: TFavoriteDM;
const
FAVORITE_LINK_NAME = '\83\8a\83\93\83N';
+ FAVORITE_FILE_NAME = 'Favorite.xml';
implementation
const
FAVORITE_ROOT_NAME = '\82¨\8bC\82É\93ü\82è';
- FAVORITE_FILE_NAME = 'Favorite.xml';
+
{$R *.dfm}
procedure TFavoriteDM.WriteFavorite;
var
- FileName, tmpFileName: string;
+ FileName, tmpFileName, bakFileName: string;
SaveList: TStringList;
-
+ Buffer: array[0..MAX_PATH] of Char; // \83o\83b\83t\83@
+ 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.\82ð\82Â\82¯\82È\82¢\82ÆWinAPI\82Æ\8bæ\95Ê\82Å\82«\82È\82¢\82Ì\82Å
- RenameFile(FileName, tmpFileName);
- end;
SaveList := TStringList.Create;
- try
- SaveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>');
- SaveList.Add('<favorite>');
- try
- AddSaveString(TreeView.Items.GetFirstNode.getFirstChild, SaveList);
- except
- end;
- SaveList.Add('</favorite>');
- SaveList.SaveToFile(FileName);
- finally
- SaveList.Free;
- end;
+ tmpFileName := '';
+ // \8f\91\82«\8d\9e\82Ý\97p\88ê\8e\9e\83t\83@\83C\83\8b\8eæ\93¾
+ if GetTempFileName(PChar(GikoSys.GetConfigDir), PChar('fav'), 0, Buffer) <> 0 then begin
+ tmpFileName := Buffer;
+ try
+ try
+ SaveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>');
+ SaveList.Add('<favorite>');
+ AddSaveString(TreeView.Items.GetFirstNode.getFirstChild, SaveList);
+ SaveList.Add('</favorite>');
+ // \88ê\8e\9e\83t\83@\83C\83\8b\82Æ\82µ\82Ä\95Û\91¶
+ SaveList.SaveToFile(tmpFileName);
+ FileRep := True;
+ // \91O\82Ì\83t\83@\83C\83\8b\82ð\88Ú\93®\82·\82é
+ if FileExists(FileName) then begin
+ bakFileName := GikoSys.GetConfigDir + '~' + FAVORITE_FILE_NAME;
+ if FileExists(bakFileName) then begin
+ FileRep := SysUtils.DeleteFile(bakFileName); //SysUtils.\82ð\82Â\82¯\82È\82¢\82ÆWinAPI\82Æ\8bæ\95Ê\82Å\82«\82È\82¢\82Ì\82Å
+ end;
+ if FileRep then begin
+ FileRep := RenameFile(FileName, bakFileName);
+ end;
+ end;
+ // \90³\8bK\82Ì\83t\83@\83C\83\8b\96¼\82É\83\8a\83l\81[\83\80\82·\82é
+ if FileRep then begin
+ FileRep := RenameFile(tmpFileName, FileName);
+ end;
+ except
+ end;
+ finally
+ SaveList.Free;
+ end;
+ end;
end;
procedure TFavoriteDM.AddSaveString(Node: TTreeNode; SaveList: TStringList);