mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-21 23:13:19 +02:00
LazUtils: move GetFileDescription from FileUtil to LazFileUtils.
Part of moving all UTF8 related filefunctions to LazFileUtils. git-svn-id: trunk@41903 -
This commit is contained in:
parent
32c3033b75
commit
347f0c2afe
@ -93,6 +93,11 @@ begin
|
||||
Result := LazFileUtils.FileSizeUtf8(FileName);
|
||||
end;
|
||||
|
||||
function GetFileDescription(const AFilename: string): string;
|
||||
begin
|
||||
Result := LazFileUtils.GetFileDescription(AFilename);
|
||||
end;
|
||||
|
||||
{$IFDEF darwin}
|
||||
function GetDarwinSystemFilename(Filename: string): string;
|
||||
var
|
||||
|
@ -81,7 +81,7 @@ function FileIsExecutable(const AFilename: string): boolean; inline;
|
||||
function FileIsSymlink(const AFilename: string): boolean; inline;
|
||||
function FileIsHardLink(const AFilename: string): boolean; inline;
|
||||
function FileSize(const Filename: string): int64; overload; inline;
|
||||
function GetFileDescription(const AFilename: string): string;
|
||||
function GetFileDescription(const AFilename: string): string; inline;
|
||||
function ReadAllLinks(const Filename: string;
|
||||
ExceptionOnError: boolean): string; // if a link is broken returns ''
|
||||
function TryReadAllLinks(const Filename: string): string; // if a link is broken returns Filename
|
||||
|
@ -98,6 +98,8 @@ function FileCreateUTF8(Const FileName : string; Rights: Cardinal) : THandle; ov
|
||||
Function FileCreateUtf8(Const FileName : String; ShareMode : Integer; Rights : Cardinal) : THandle; overload;
|
||||
|
||||
function FileSizeUtf8(const Filename: string): int64;
|
||||
function GetFileDescription(const AFilename: string): string;
|
||||
|
||||
|
||||
function GetAppConfigDirUTF8(Global: Boolean; Create: boolean = false): string;
|
||||
function GetAppConfigFileUTF8(Global: Boolean; SubDir: boolean = false;
|
||||
|
@ -1,97 +1,6 @@
|
||||
{%MainUnit fileutil.pas}
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
GetFileDescription
|
||||
------------------------------------------------------------------------------}
|
||||
function GetFileDescription(const AFilename: string): string;
|
||||
var
|
||||
info: Stat;
|
||||
// permissions
|
||||
// user
|
||||
// group
|
||||
// size
|
||||
// date
|
||||
// time
|
||||
mode: mode_t;
|
||||
begin
|
||||
Result:='';
|
||||
if not (FpStat(AFilename,info{%H-})=0) then exit;
|
||||
|
||||
// permissions
|
||||
// file type
|
||||
mode:= info.st_mode;
|
||||
if STAT_IFLNK and mode=STAT_IFLNK then
|
||||
Result:=Result+'l'
|
||||
else
|
||||
if STAT_IFDIR and mode=STAT_IFDIR then
|
||||
Result:=Result+'d'
|
||||
else
|
||||
if STAT_IFBLK and mode=STAT_IFBLK then
|
||||
Result:=Result+'b'
|
||||
else
|
||||
if STAT_IFCHR and mode=STAT_IFCHR then
|
||||
Result:=Result+'c'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
// user permissions
|
||||
if STAT_IRUSR and mode=STAT_IRUsr then
|
||||
Result:=Result+'r'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IWUsr and mode=STAT_IWUsr then
|
||||
Result:=Result+'w'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IXUsr and mode=STAT_IXUsr then
|
||||
Result:=Result+'x'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
// group permissions
|
||||
if STAT_IRGRP and mode=STAT_IRGRP then
|
||||
Result:=Result+'r'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IWGRP and mode=STAT_IWGRP then
|
||||
Result:=Result+'w'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IXGRP and mode=STAT_IXGRP then
|
||||
Result:=Result+'x'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
// other permissions
|
||||
if STAT_IROTH and mode=STAT_IROTH then
|
||||
Result:=Result+'r'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IWOTH and mode=STAT_IWOTH then
|
||||
Result:=Result+'w'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IXOTH and mode=STAT_IXOTH then
|
||||
Result:=Result+'x'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
|
||||
|
||||
// user name
|
||||
//Result:=Result+' Owner: '+IntToStr(info.uid)+'.'+IntToStr(info.gid);
|
||||
|
||||
// size
|
||||
Result:=Result+lrsSize+IntToStr(info.st_size);
|
||||
|
||||
// date + time
|
||||
Result:=Result+lrsModified;
|
||||
try
|
||||
Result:=Result+FormatDateTime('DD/MM/YYYY hh:mm',
|
||||
FileDateToDateTime(FileAgeUTF8(AFilename)));
|
||||
except
|
||||
Result:=Result+'?';
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
function ReadAllLinks(const Filename: string;
|
||||
ExceptionOnError: boolean): string;
|
||||
|
@ -275,6 +275,92 @@ begin
|
||||
Result := '';
|
||||
end;
|
||||
|
||||
function GetFileDescription(const AFilename: string): string;
|
||||
var
|
||||
info: Stat;
|
||||
// permissions
|
||||
// user
|
||||
// group
|
||||
// size
|
||||
// date
|
||||
// time
|
||||
mode: mode_t;
|
||||
begin
|
||||
Result:='';
|
||||
if not (FpStat(AFilename,info{%H-})=0) then exit;
|
||||
|
||||
// permissions
|
||||
// file type
|
||||
mode:= info.st_mode;
|
||||
if STAT_IFLNK and mode=STAT_IFLNK then
|
||||
Result:=Result+'l'
|
||||
else
|
||||
if STAT_IFDIR and mode=STAT_IFDIR then
|
||||
Result:=Result+'d'
|
||||
else
|
||||
if STAT_IFBLK and mode=STAT_IFBLK then
|
||||
Result:=Result+'b'
|
||||
else
|
||||
if STAT_IFCHR and mode=STAT_IFCHR then
|
||||
Result:=Result+'c'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
// user permissions
|
||||
if STAT_IRUSR and mode=STAT_IRUsr then
|
||||
Result:=Result+'r'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IWUsr and mode=STAT_IWUsr then
|
||||
Result:=Result+'w'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IXUsr and mode=STAT_IXUsr then
|
||||
Result:=Result+'x'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
// group permissions
|
||||
if STAT_IRGRP and mode=STAT_IRGRP then
|
||||
Result:=Result+'r'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IWGRP and mode=STAT_IWGRP then
|
||||
Result:=Result+'w'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IXGRP and mode=STAT_IXGRP then
|
||||
Result:=Result+'x'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
// other permissions
|
||||
if STAT_IROTH and mode=STAT_IROTH then
|
||||
Result:=Result+'r'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IWOTH and mode=STAT_IWOTH then
|
||||
Result:=Result+'w'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
if STAT_IXOTH and mode=STAT_IXOTH then
|
||||
Result:=Result+'x'
|
||||
else
|
||||
Result:=Result+'-';
|
||||
|
||||
|
||||
// user name
|
||||
//Result:=Result+' Owner: '+IntToStr(info.uid)+'.'+IntToStr(info.gid);
|
||||
|
||||
// size
|
||||
Result:=Result+lrsSize+IntToStr(info.st_size);
|
||||
|
||||
// date + time
|
||||
Result:=Result+lrsModified;
|
||||
try
|
||||
Result:=Result+FormatDateTime('DD/MM/YYYY hh:mm',
|
||||
FileDateToDateTime(FileAgeUTF8(AFilename)));
|
||||
except
|
||||
Result:=Result+'?';
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
procedure InitLazFileUtils;
|
||||
|
@ -1,20 +1,7 @@
|
||||
{%MainUnit fileutil.pas}
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
GetFileDescription
|
||||
------------------------------------------------------------------------------}
|
||||
function GetFileDescription(const AFilename: string): string;
|
||||
begin
|
||||
// date + time
|
||||
Result:=lrsModified;
|
||||
try
|
||||
Result:=Result+FormatDateTime('DD/MM/YYYY hh:mm',
|
||||
FileDateToDateTime(FileAgeUTF8(AFilename)));
|
||||
except
|
||||
Result:=Result+'?';
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
function ReadAllLinks(const Filename: string;
|
||||
|
@ -844,6 +844,18 @@ begin
|
||||
Result := Copy(Path, 1, I);
|
||||
end;
|
||||
|
||||
function GetFileDescription(const AFilename: string): string;
|
||||
begin
|
||||
// date + time
|
||||
Result:=lrsModified;
|
||||
try
|
||||
Result:=Result+FormatDateTime('DD/MM/YYYY hh:mm',
|
||||
FileDateToDateTime(FileAgeUTF8(AFilename)));
|
||||
except
|
||||
Result:=Result+'?';
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user