splitted off unit FileUtil, it doesn't depend on other LCL units

git-svn-id: trunk@6080 -
This commit is contained in:
vincents 2004-09-27 21:45:44 +00:00
parent b0e1042048
commit bcf90ce19b
19 changed files with 124 additions and 101 deletions

1
.gitattributes vendored
View File

@ -1088,6 +1088,7 @@ lcl/extdlgs.pas svneol=native#text/pascal
lcl/extendedstrings.pas svneol=native#text/pascal lcl/extendedstrings.pas svneol=native#text/pascal
lcl/extgraphics.pas svneol=native#text/pascal lcl/extgraphics.pas svneol=native#text/pascal
lcl/filectrl.pp svneol=native#text/pascal lcl/filectrl.pp svneol=native#text/pascal
lcl/fileutil.pas svneol=native#text/pascal
lcl/forms.pp svneol=native#text/pascal lcl/forms.pp svneol=native#text/pascal
lcl/fpcadds.pas svneol=native#text/pascal lcl/fpcadds.pas svneol=native#text/pascal
lcl/graphics.pp svneol=native#text/pascal lcl/graphics.pp svneol=native#text/pascal

View File

@ -26,7 +26,7 @@ unit HelpFPDoc;
interface interface
uses uses
Classes, SysUtils, LCLProc, FileCtrl, HelpIntf, HelpHTML; Classes, SysUtils, LCLProc, FileUtil, HelpIntf, HelpHTML;
type type
{ TFPDocHTMLHelpDatabase } { TFPDocHTMLHelpDatabase }

View File

@ -22,7 +22,7 @@ unit HelpHTML;
interface interface
uses uses
Classes, SysUtils, LCLProc, Forms, Process, FileCtrl, ConfigStorage, Classes, SysUtils, LCLProc, Forms, Process, FileUtil, ConfigStorage,
PropEdits, ObjInspStrConsts, HelpIntf; PropEdits, ObjInspStrConsts, HelpIntf;
type type

View File

@ -27,7 +27,7 @@ unit HelpIntf;
interface interface
uses uses
Classes, SysUtils, LCLProc, Controls, FileCtrl, ConfigStorage, Classes, SysUtils, LCLProc, Controls, FileUtil, ConfigStorage,
ObjInspStrConsts; ObjInspStrConsts;
type type

View File

@ -22,7 +22,7 @@ unit ProjectIntf;
interface interface
uses uses
Classes, SysUtils, LCLProc, FileCtrl; Classes, SysUtils, LCLProc, FileUtil;
const const
FileDescNamePascalUnit = 'unit'; FileDescNamePascalUnit = 'unit';

View File

@ -36,6 +36,7 @@ uses
StringHashList, ExtendedStrings, DynamicArray, UTrace, TextStrings, StringHashList, ExtendedStrings, DynamicArray, UTrace, TextStrings,
// base types and base functions // base types and base functions
LCLProc, LCLType, LCLResCache, GraphMath, FileCtrl, LMessages, LResources, LCLProc, LCLType, LCLResCache, GraphMath, FileCtrl, LMessages, LResources,
FileUtil,
// the interface base // the interface base
InterfaceBase, InterfaceBase,
{$IFNDEF DisableFPImage}IntfGraphics,{$ENDIF} {$IFNDEF DisableFPImage}IntfGraphics,{$ENDIF}
@ -63,6 +64,9 @@ end.
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.22 2004/09/27 21:45:44 vincents
splitted off unit FileUtil, it doesn't depend on other LCL units
Revision 1.21 2004/09/24 13:45:31 mattias Revision 1.21 2004/09/24 13:45:31 mattias
fixed TCanvas.TextRect Delphi compatible Rect and added TBarChart from Michael VC fixed TCanvas.TextRect Delphi compatible Rect and added TBarChart from Michael VC

View File

@ -37,7 +37,7 @@ unit Dialogs;
interface interface
uses uses
Classes, SysUtils, LCLIntf, InterfaceBase, FileCtrl, LCLStrConsts, LCLType, Classes, SysUtils, LCLIntf, InterfaceBase, FileUtil, LCLStrConsts, LCLType,
LMessages, LCLProc, Forms, Controls, GraphType, Graphics, Buttons, StdCtrls, LMessages, LCLProc, Forms, Controls, GraphType, Graphics, Buttons, StdCtrls,
LCLClasses; LCLClasses;
@ -420,6 +420,9 @@ end.
{ ============================================================================= { =============================================================================
$Log$ $Log$
Revision 1.54 2004/09/27 21:45:44 vincents
splitted off unit FileUtil, it doesn't depend on other LCL units
Revision 1.53 2004/09/14 21:30:37 vincents Revision 1.53 2004/09/14 21:30:37 vincents
replaced writeln by DebugLn replaced writeln by DebugLn

View File

@ -27,9 +27,9 @@ unit ExtDlgs;
interface interface
uses uses
Classes, SysUtils, LCLProc, LResources, LCLType, LCLStrConsts, Controls, Classes, SysUtils, LCLProc, LResources, LCLType, LCLStrConsts, FileUtil,
Dialogs, GraphType, Graphics, ExtCtrls, StdCtrls, Forms, FileCtrl, Calendar, Controls, Dialogs, GraphType, Graphics, ExtCtrls, StdCtrls, Forms,
Buttons; Calendar, Buttons;
type type

View File

@ -41,7 +41,7 @@ uses
// otherwise IE 55665566 occurs. // otherwise IE 55665566 occurs.
Controls, Controls,
{$endif} {$endif}
StdCtrls; StdCtrls, FileUtil;
Type Type
@ -132,90 +132,10 @@ Type
property Visible; property Visible;
end; end;
// file attributes and states
function CompareFilenames(const Filename1, Filename2: string): integer;
function CompareFilenames(const Filename1, Filename2: string;
ResolveLinks: boolean): integer;
function CompareFilenames(Filename1: PChar; Len1: integer;
Filename2: PChar; Len2: integer; ResolveLinks: boolean): integer;
function FilenameIsAbsolute(TheFilename: string):boolean;
procedure CheckIfFileIsExecutable(const AFilename: string);
procedure CheckIfFileIsSymlink(const AFilename: string);
function FileIsReadable(const AFilename: string): boolean;
function FileIsWritable(const AFilename: string): boolean;
function FileIsText(const AFilename: string): boolean;
function FileIsExecutable(const AFilename: string): boolean;
function FileIsSymlink(const AFilename: string): boolean;
function GetFileDescription(const AFilename: string): string;
function ReadAllLinks(const Filename: string;
ExceptionOnError: boolean): string;
// directories
function DirPathExists(const FileName: String): Boolean;
function ForceDirectory(DirectoryName: string): boolean;
function DeleteDirectory(const DirectoryName: string;
OnlyChilds: boolean): boolean;
function ProgramDirectory: string;
// filename parts
function ExtractFileNameOnly(const AFilename: string): string;
function CompareFileExt(const Filename, Ext: string;
CaseSensitive: boolean): integer;
function FilenameIsPascalUnit(const Filename: string): boolean;
function AppendPathDelim(const Path: string): string;
function ChompPathDelim(const Path: string): string;
function TrimFilename(const AFilename: string): string;
function CleanAndExpandFilename(const Filename: string): string;
function CleanAndExpandDirectory(const Filename: string): string;
function FileIsInPath(const Filename, Path: string): boolean;
function FileIsInDirectory(const Filename, Directory: string): boolean;
function FileInFilenameMasks(const Filename, Masks: string): boolean;
// file search
type
TSearchFileInPathFlag = (
sffDontSearchInBasePath,
sffSearchLoUpCase
);
TSearchFileInPathFlags = set of TSearchFileInPathFlag;
function SearchFileInPath(const Filename, BasePath, SearchPath,
Delimiter: string; Flags: TSearchFileInPathFlags): string;
function GetAllFilesMask: string;
// file actions
function ReadFileToString(const Filename: string): string;
function CopyFile(const SrcFilename, DestFilename: string): boolean;
function CopyFile(const SrcFilename, DestFilename: string; PreserveTime: boolean): boolean;
function GetTempFilename(const Path, Prefix: string): string;
procedure Register; procedure Register;
implementation implementation
uses
{$IFDEF win32}
Dos;
{$ELSE}
{$IFDEF Ver1_0}Linux{$ELSE}Unix,BaseUnix{$ENDIF};
{$ENDIF}
var
UpChars: array[char] of char;
{$I filectrl.inc}
procedure InternalInit;
var
c: char;
begin
for c:=Low(char) to High(char) do begin
UpChars[c]:=upcase(c);
end;
end;
{ TCustomFileListBox } { TCustomFileListBox }
procedure TCustomFileListBox.UpdateFileList; procedure TCustomFileListBox.UpdateFileList;
@ -391,13 +311,13 @@ begin
RegisterComponents('Misc',[TFileListBox]); RegisterComponents('Misc',[TFileListBox]);
end; end;
initialization
InternalInit;
end. end.
{ {
$Log$ $Log$
Revision 1.31 2004/09/27 21:45:44 vincents
splitted off unit FileUtil, it doesn't depend on other LCL units
Revision 1.30 2004/09/27 10:35:51 vincents Revision 1.30 2004/09/27 10:35:51 vincents
Added CopyFile with PerserveTime parameter Added CopyFile with PerserveTime parameter

95
lcl/fileutil.pas Normal file
View File

@ -0,0 +1,95 @@
unit FileUtil;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
// file attributes and states
function CompareFilenames(const Filename1, Filename2: string): integer;
function CompareFilenames(const Filename1, Filename2: string;
ResolveLinks: boolean): integer;
function CompareFilenames(Filename1: PChar; Len1: integer;
Filename2: PChar; Len2: integer; ResolveLinks: boolean): integer;
function FilenameIsAbsolute(TheFilename: string):boolean;
procedure CheckIfFileIsExecutable(const AFilename: string);
procedure CheckIfFileIsSymlink(const AFilename: string);
function FileIsReadable(const AFilename: string): boolean;
function FileIsWritable(const AFilename: string): boolean;
function FileIsText(const AFilename: string): boolean;
function FileIsExecutable(const AFilename: string): boolean;
function FileIsSymlink(const AFilename: string): boolean;
function GetFileDescription(const AFilename: string): string;
function ReadAllLinks(const Filename: string;
ExceptionOnError: boolean): string;
// directories
function DirPathExists(const FileName: String): Boolean;
function ForceDirectory(DirectoryName: string): boolean;
function DeleteDirectory(const DirectoryName: string;
OnlyChilds: boolean): boolean;
function ProgramDirectory: string;
// filename parts
function ExtractFileNameOnly(const AFilename: string): string;
function CompareFileExt(const Filename, Ext: string;
CaseSensitive: boolean): integer;
function FilenameIsPascalUnit(const Filename: string): boolean;
function AppendPathDelim(const Path: string): string;
function ChompPathDelim(const Path: string): string;
function TrimFilename(const AFilename: string): string;
function CleanAndExpandFilename(const Filename: string): string;
function CleanAndExpandDirectory(const Filename: string): string;
function FileIsInPath(const Filename, Path: string): boolean;
function FileIsInDirectory(const Filename, Directory: string): boolean;
function FileInFilenameMasks(const Filename, Masks: string): boolean;
// file search
type
TSearchFileInPathFlag = (
sffDontSearchInBasePath,
sffSearchLoUpCase
);
TSearchFileInPathFlags = set of TSearchFileInPathFlag;
function SearchFileInPath(const Filename, BasePath, SearchPath,
Delimiter: string; Flags: TSearchFileInPathFlags): string;
function GetAllFilesMask: string;
// file actions
function ReadFileToString(const Filename: string): string;
function CopyFile(const SrcFilename, DestFilename: string): boolean;
function CopyFile(const SrcFilename, DestFilename: string; PreserveTime: boolean): boolean;
function GetTempFilename(const Path, Prefix: string): string;
implementation
uses
{$IFDEF win32}
Dos;
{$ELSE}
{$IFDEF Ver1_0}Linux{$ELSE}Unix,BaseUnix{$ENDIF};
{$ENDIF}
var
UpChars: array[char] of char;
{$I filectrl.inc}
procedure InternalInit;
var
c: char;
begin
for c:=Low(char) to High(char) do begin
UpChars[c]:=upcase(c);
end;
end;
initialization
InternalInit;
end.

View File

@ -39,7 +39,7 @@ interface
uses uses
Classes, SysUtils, Forms, Controls, Buttons, ExtCtrls, StdCtrls, Classes, SysUtils, Forms, Controls, Buttons, ExtCtrls, StdCtrls,
LazarusIDEStrConsts, Dialogs, AVL_Tree, FileCtrl, IDEProcs, IDEOptionDefs, LazarusIDEStrConsts, Dialogs, AVL_Tree, FileUtil, IDEProcs, IDEOptionDefs,
ComponentReg, PackageDefs, PackageSystem; ComponentReg, PackageDefs, PackageSystem;
type type

View File

@ -39,7 +39,7 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Buttons, StdCtrls, ExtCtrls, Classes, SysUtils, LResources, Forms, Controls, Buttons, StdCtrls, ExtCtrls,
Dialogs, FileCtrl, ComCtrls, LazarusIDEStrConsts, IDEOptionDefs, InputHistory, Dialogs, FileUtil, ComCtrls, LazarusIDEStrConsts, IDEOptionDefs, InputHistory,
AVL_Tree, CodeToolManager, IDEDefs, IDEProcs, EnvironmentOpts, PackageSystem, AVL_Tree, CodeToolManager, IDEDefs, IDEProcs, EnvironmentOpts, PackageSystem,
PackageDefs, ComponentReg; PackageDefs, ComponentReg;

View File

@ -47,7 +47,7 @@ interface
uses uses
Classes, SysUtils, LCLProc, LResources, Graphics, Laz_XMLCfg, AVL_Tree, Classes, SysUtils, LCLProc, LResources, Graphics, Laz_XMLCfg, AVL_Tree,
DefineTemplates, CodeToolManager, EditDefineTree, CompilerOptions, Forms, DefineTemplates, CodeToolManager, EditDefineTree, CompilerOptions, Forms,
FileCtrl, LazarusIDEStrConsts, IDEProcs, ComponentReg, TransferMacros, FileUtil, LazarusIDEStrConsts, IDEProcs, ComponentReg, TransferMacros,
FileReferenceList, PublishModule; FileReferenceList, PublishModule;
type type

View File

@ -39,7 +39,7 @@ interface
uses uses
Classes, SysUtils, Forms, Controls, StdCtrls, ComCtrls, Buttons, LResources, Classes, SysUtils, Forms, Controls, StdCtrls, ComCtrls, Buttons, LResources,
Graphics, LCLType, LCLProc, Menus, Dialogs, FileCtrl, Laz_XMLCfg, AVL_Tree, Graphics, LCLType, LCLProc, Menus, Dialogs, FileUtil, Laz_XMLCfg, AVL_Tree,
IDEProcs, LazConf, LazarusIDEStrConsts, IDEOptionDefs, IDEDefs, IDEProcs, LazConf, LazarusIDEStrConsts, IDEOptionDefs, IDEDefs,
CompilerOptions, CompilerOptionsDlg, ComponentReg, PackageDefs, PkgOptionsDlg, CompilerOptions, CompilerOptionsDlg, ComponentReg, PackageDefs, PkgOptionsDlg,
AddToPackageDlg, PkgVirtualUnitEditor, PackageSystem; AddToPackageDlg, PkgVirtualUnitEditor, PackageSystem;

View File

@ -38,7 +38,7 @@ unit PackageLinks;
interface interface
uses uses
Classes, SysUtils, AVL_Tree, Laz_XMLCfg, LCLProc, FileCtrl, IDEProcs, Classes, SysUtils, AVL_Tree, Laz_XMLCfg, LCLProc, FileUtil, IDEProcs,
EnvironmentOpts, PackageDefs, LazConf; EnvironmentOpts, PackageDefs, LazConf;
type type

View File

@ -45,7 +45,7 @@ uses
{$IFDEF IDE_MEM_CHECK} {$IFDEF IDE_MEM_CHECK}
MemCheck, MemCheck,
{$ENDIF} {$ENDIF}
Classes, SysUtils, AVL_Tree, Laz_XMLCfg, FileCtrl, LCLProc, Forms, Controls, Classes, SysUtils, AVL_Tree, Laz_XMLCfg, FileUtil, LCLProc, Forms, Controls,
Dialogs, LazarusIDEStrConsts, IDEProcs, LazConf, CompilerOptions, Dialogs, LazarusIDEStrConsts, IDEProcs, LazConf, CompilerOptions,
PackageLinks, PackageDefs, LazarusPackageIntf, ComponentReg, RegisterFCL, PackageLinks, PackageDefs, LazarusPackageIntf, ComponentReg, RegisterFCL,
RegisterLCL, RegisterSynEdit, RegisterIDEIntf; RegisterLCL, RegisterSynEdit, RegisterIDEIntf;

View File

@ -45,7 +45,7 @@ uses
MemCheck, MemCheck,
{$ENDIF} {$ENDIF}
// FCL, LCL // FCL, LCL
Classes, SysUtils, LCLProc, Forms, Controls, FileCtrl, Dialogs, Menus, Classes, SysUtils, LCLProc, Forms, Controls, FileUtil, Dialogs, Menus,
// codetools // codetools
CodeToolManager, CodeCache, BasicCodeTools, Laz_XMLCfg, AVL_Tree, CodeToolManager, CodeCache, BasicCodeTools, Laz_XMLCfg, AVL_Tree,
// IDE // IDE

View File

@ -39,7 +39,7 @@ interface
uses uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
StdCtrls, FileCtrl, PackageDefs; StdCtrls, FileUtil, PackageDefs;
type type
TEditVirtualUnitDialog = class(TForm) TEditVirtualUnitDialog = class(TForm)

View File

@ -29,7 +29,7 @@ interface
uses uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, LResources, StdCtrls, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, LResources, StdCtrls,
Buttons, FileCtrl, IDEProcs, UFrmAddComponent; Buttons, FileUtil, IDEProcs, UFrmAddComponent;
Type Type
TRComponent = class(TObject) TRComponent = class(TObject)