From cb33ec967a2687d9cff8fec4a577b24b3152fc42 Mon Sep 17 00:00:00 2001 From: bart <9132501-flyingsheep@users.noreply.gitlab.com> Date: Wed, 22 May 2013 15:38:48 +0000 Subject: [PATCH] LazUtils: move more Utf8 file routines to LazFileUtils (and inline them in FileUtil): ForceDirectory, DirectoryIsWritable. git-svn-id: trunk@41356 - --- components/lazutils/fileutil.inc | 33 ++-------------------------- components/lazutils/fileutil.pas | 4 ++-- components/lazutils/lazfileutils.pas | 4 ++-- 3 files changed, 6 insertions(+), 35 deletions(-) diff --git a/components/lazutils/fileutil.inc b/components/lazutils/fileutil.inc index b45ee787bd..39a9ce68c9 100644 --- a/components/lazutils/fileutil.inc +++ b/components/lazutils/fileutil.inc @@ -430,23 +430,8 @@ end; function ForceDirectory(DirectoryName: string): boolean; ------------------------------------------------------------------------------} function ForceDirectory(DirectoryName: string): boolean; -var i: integer; - Dir: string; begin - DoDirSeparators(DirectoryName); - DirectoryName := AppendPathDelim(DirectoryName); - i:=1; - while i<=length(DirectoryName) do begin - if DirectoryName[i]=PathDelim then begin - Dir:=copy(DirectoryName,1,i-1); - if not DirPathExists(Dir) then begin - Result:=CreateDirUTF8(Dir); - if not Result then exit; - end; - end; - inc(i); - end; - Result:=true; + Result := LazFileUtils.ForceDirectory(DirectoryName); end; {------------------------------------------------------------------------------ @@ -508,22 +493,8 @@ begin end; function DirectoryIsWritable(const DirectoryName: string): boolean; -var - TempFilename: String; - fs: TFileStream; - s: String; begin - TempFilename:=GetTempFilename(DirectoryName,'tstperm'); - Result:=false; - try - fs:=TFileStream.Create(UTF8ToSys(TempFilename),fmCreate); - s:='WriteTest'; - fs.Write(s[1],length(s)); - fs.Free; - DeleteFileUTF8(TempFilename); - Result:=true; - except - end; + Result := LazFileUtils.DirectoryIsWritable(DirectoryName); end; {------------------------------------------------------------------------------ diff --git a/components/lazutils/fileutil.pas b/components/lazutils/fileutil.pas index 26499174e0..97a275f01d 100644 --- a/components/lazutils/fileutil.pas +++ b/components/lazutils/fileutil.pas @@ -94,10 +94,10 @@ function TryReadAllLinks(const Filename: string): string; // if a link is broken // directories function DirPathExists(const FileName: String): Boolean; inline; -function ForceDirectory(DirectoryName: string): boolean; +function ForceDirectory(DirectoryName: string): boolean; inline; function DeleteDirectory(const DirectoryName: string; OnlyChildren: boolean): boolean; function ProgramDirectory: string; -function DirectoryIsWritable(const DirectoryName: string): boolean; +function DirectoryIsWritable(const DirectoryName: string): boolean; inline; // filename parts const diff --git a/components/lazutils/lazfileutils.pas b/components/lazutils/lazfileutils.pas index d63c00eeb6..a668bb032f 100644 --- a/components/lazutils/lazfileutils.pas +++ b/components/lazutils/lazfileutils.pas @@ -430,13 +430,13 @@ end; function DirectoryIsWritable(const DirectoryName: string): boolean; var TempFilename: String; - fs: TFileStream; + fs: TFileStreamUtf8; s: String; begin TempFilename:=SysUtils.GetTempFilename(AppendPathDelim(DirectoryName),'tstperm'); Result:=false; try - fs:=TFileStream.Create(UTF8ToSys(TempFilename),fmCreate); + fs:=TFileStreamUtf8.Create(TempFilename, fmCreate); s:='WriteTest'; fs.Write(s[1],length(s)); fs.Free;