Lazarus文件系统管理 Lazarus的FileUtil单元包含用以维持Delphi的FileUtil单元的兼容性的函数和过程。1。如何使用FileUtil单元 为在一个工程中启动FileUtil,只需要将LazUtils添加到所需要的软件包中。按照这个步骤: 1转到LazarusIDE菜单ProjectProjectInspector。 2在工程查看器对话框窗口中,单击AddNewRequirement。 3在NewRequirement对话框窗口中,查找LazUtils单元,然后单击OK。 4现在,你可以将FileUtil添加到一个Uses分句之中。2。函数列表文件属性或状态functionCompareFilenames(constFilename1,Filename2:string):functionCompareFilenamesIgnoreCase(constFilename1,Filename2:string):functionCompareFilenames(constFilename1,Filename2:ResolveLinks:boolean):functionCompareFilenames(Filename1:PCLen1:Filename2:PCLen2:ResolveLinks:boolean):functionFilenameIsAbsolute(constTheFilename:string):functionFilenameIsWinAbsolute(constTheFilename:string):functionFilenameIsUnixAbsolute(constTheFilename:string):procedureCheckIfFileIsExecutable(constAFilename:string);procedureCheckIfFileIsSymlink(constAFilename:string);functionFileIsReadable(constAFilename:string):functionFileIsWritable(constAFilename:string):functionFileIsText(constAFilename:string):functionFileIsText(constAFilename:outFileReadable:boolean):functionFileIsExecutable(constAFilename:string):functionFileIsSymlink(constAFilename:string):functionFileIsHardLink(constAFilename:string):functionFileSize(constFilename:string):int64;functionGetFileDescription(constAFilename:string):functionReadAllLinks(constFilename:ExceptionOnError:boolean):如果一个链接是破损的,返回functionTryReadAllLinks(constFilename:string):如果一个链接是破损的,返回文件名称目录functionDirPathExists(constFileName:String):BfunctionForceDirectory(DirectoryName:string):functionDeleteDirectory(constDirectoryName:OnlyChildren:boolean):functionProgramDirectory:functionDirectoryIsWritable(constDirectoryName:string):文件名称部分functionExtractFileNameOnly(constAFilename:string):functionExtractFileNameWithoutExt(constAFilename:string):functionCompareFileExt(constFilename,Ext:CaseSensitive:boolean):functionCompareFileExt(constFilename,Ext:string):functionFilenameIsPascalUnit(constFilename:string):functionAppendPathDelim(constPath:string):functionChompPathDelim(constPath:string):functionTrimFilename(constAFilename:string):functionCleanAndExpandFilename(constFilename:string):functionCleanAndExpandDirectory(constFilename:string):functionCreateAbsoluteSearchPath(constSearchPath,BaseDirectory:string):functionCreateRelativePath(constFilename,BaseDirectory:UsePointDirectory:AlwaysRequireSharedBaseFolder:BooleanTrue):functionCreateAbsolutePath(constFilename,BaseDirectory:string):functionFileIsInPath(constFilename,Path:string):functionFileIsInDirectory(constFilename,Directory:string):文件搜索typeTSearchFileInPathFlag(sffDontSearchInBasePath,sffSearchLoUpCase);TSearchFileInPathFlagssetofTSearchFileInPathFconstAllDirectoryEntriesMfunctionGetAllFilesMask:functionGetExeExt:functionSearchFileInPath(constFilename,BasePath,SearchPath,Delimiter:Flags:TSearchFileInPathFlags):functionSearchAllFilesInPath(constFilename,BasePath,SearchPath,Delimiter:Flags:TSearchFileInPathFlags):TSfunctionFindDiskFilename(constFilename:string):functionFindDiskFileCaseInsensitive(constFilename:string):functionFindDefaultExecutablePath(constExecutable:constBaseDir:string):typeTFileIteratorclassprivateFPath:SFLevel:IFFileInfo:TSearchRFSearching:BfunctionGetFileName:SpublicprocedureSfunctionIsDirectory:BpublicpropertyFileName:StringreadGetFileNpropertyFileInfo:TSearchRecreadFFileIpropertyLevel:IntegerreadFLpropertyPath:StringreadFPpropertySearching:BooleanreadFSTFileFoundEventprocedure(FileIterator:TFileIterator)TDirectoryFoundEventprocedure(FileIterator:TFileIterator)TDirectoryEnterEventprocedure(FileIterator:TFileIterator)TFileSearcherclass(TFileIterator)privateFMaskSeparator:FFollowSymLink:BFOnFileFound:TFileFoundEFOnDirectoryFound:TDirectoryFoundEFOnDirectoryEnter:TDirectoryEnterEFFileAttribute:WFDirectoryAttribute:WprocedureRaiseSearchingEprotectedprocedureDoDirectoryEprocedureDoDirectoryFprocedureDoFileFpublicconstructorCprocedureSearch(constASearchPath:SASearchMask:SASearchSubDirs:BooleanTCaseSensitive:BooleanFalse);publicpropertyMaskSeparator:charreadFMaskSeparatorwriteFMaskSpropertyFollowSymLink:BooleanreadFFollowSymLinkwriteFFollowSymLpropertyFileAttribute:WordreadFFileAttributewriteFFileAttributedefaultfaApropertyDirectoryAttribute:WordreadFDirectoryAttributewriteFDirectoryAttributedefaultfaDpropertyOnDirectoryFound:TDirectoryFoundEventreadFOnDirectoryFoundwriteFOnDirectoryFpropertyOnFileFound:TFileFoundEventreadFOnFileFoundwriteFOnFileFpropertyOnDirectoryEnter:TDirectoryEnterEventreadFOnDirectoryEnterwriteFOnDirectoryEfunction〔〔FindAllFiles〕〕(constSearchPath:SSearchMask:SSearchSubDirs:BooleanTrue):TStringLfunctionFindAllDirectories(constSearchPath:SearchSubDirs:BooleanTrue):TStringL复制一个文件或一整个目录树function〔〔CopyFile〕〕(constSrcFilename,DestFilename:Flags:TCopyFileFlags〔cffOverwriteFile〕):function〔〔CopyFile〕〕(constSrcFilename,DestFilename:PreserveTime:boolean):functionCopyDirTree(constSourceDir,TargetDir:Flags:TCopyFileFlags〔〕):B文件动作functionReadFileToString(constFilename:string):functionGetTempFilename(constDirectory,Prefix:string):基本的函数,类似于RTL,但是使用UTF8,而不是使用系统编码AnsiToUTF8和UTF8ToAnsi在Linux、BSD、MacOSX下需要一个widestring管理器但是通常情况下,这些操作系统使用UTF8作为系统编码,因此不需要widestring管理器。functionNeedRTLAnsi:true,如果系统编码不是UTF8procedureSetNeedRTLAnsi(NewValue:boolean);functionUTF8ToSys(consts:string):像UTF8ToAnsi一样,但是更多的独立于widestring管理器functionSysToUTF8(consts:string):像AnsiToUTF8一样,但是更多的独立于widestring管理器functionConsoleToUTF8(consts:string):转换OEM编码字符串到UTF8(与一些Windows的特殊函数一起使用)functionUTF8ToConsole(consts:string):转换UTF8字符串到控制台编码(由Write、WriteLn使用)文件操作functionFileExistsUTF8(constFilename:string):functionFileAgeUTF8(constFileName:string):LfunctionDirectoryExistsUTF8(constDirectory:string):BfunctionExpandFileNameUTF8(constFileName:string):functionExpandUNCFileNameUTF8(constFileName:string):functionExtractShortPathNameUTF8(ConstFileName:String):SfunctionFindFirstUTF8(constPath:Attr:LoutRslt:TSearchRec):LfunctionFindNextUTF8(varRslt:TSearchRec):LprocedureFindCloseUTF8(varF:TSearchrec);functionFileSetDateUTF8(constFileName:SAge:Longint):LfunctionFileGetAttrUTF8(constFileName:String):LfunctionFileSetAttrUTF8(constFilename:SAttr:longint):LfunctionDeleteFileUTF8(constFileName:String):BfunctionRenameFileUTF8(constOldName,NewName:String):BfunctionFileSearchUTF8(constName,DirList:SImplicitCurrentDir:BooleanTrue):SfunctionFileIsReadOnlyUTF8(constFileName:String):BfunctionGetCurrentDirUTF8:SfunctionSetCurrentDirUTF8(constNewDir:String):BfunctionCreateDirUTF8(constNewDir:String):BfunctionRemoveDirUTF8(constDir:String):BfunctionForceDirectoriesUTF8(constDir:string):BfunctionFileOpenUTF8(ConstFileName:Mode:Integer):THfunctionFileCreateUTF8(ConstFileName:string):THfunctionFileCreateUTF8(ConstFileName:Rights:Cardinal):TH环境functionParamStrUTF8(Param:Integer):functionGetEnvironmentStringUTF8(Index:Integer):functionGetEnvironmentVariableUTF8(constEnvVar:string):SfunctionGetAppConfigDirUTF8(Global:BCreate:booleanfalse):functionGetAppConfigFileUTF8(Global:BSubDir:CreateDir:booleanfalse):其他functionSysErrorMessageUTF8(ErrorCode:Integer):S3。LazFileUtils 专门处理UTF8文件的文件例行程序应使用LazFileUtils单元。比较文件名称functionCompareFilenames(constFilename1,Filename2:string):functionCompareFilenamesIgnoreCase(constFilename1,Filename2:string):functionCompareFileExt(constFilename,Ext:CaseSensitive:boolean):functionCompareFileExt(constFilename,Ext:string):functionCompareFilenameStarts(constFilename1,Filename2:string):functionCompareFilenames(Filename1:PCLen1:Filename2:PCLen2:integer):functionCompareFilenamesP(Filename1,Filename2:PCIgnoreCase:booleanfalse):false使用默认目录functionDirPathExists(DirectoryName:string):functionDirectoryIsWritable(constDirectoryName:string):文件名称functionExtractFileNameOnly(constAFilename:string):functionFilenameIsAbsolute(constTheFilename:string):functionFilenameIsWinAbsolute(constTheFilename:string):functionFilenameIsUnixAbsolute(constTheFilename:string):functionForceDirectory(DirectoryName:string):procedureCheckIfFileIsExecutable(constAFilename:string);procedureCheckIfFileIsSymlink(constAFilename:string);functionFileIsExecutable(constAFilename:string):functionFileIsSymlink(constAFilename:string):functionFileIsHardLink(constAFilename:string):functionFileIsReadable(constAFilename:string):functionFileIsWritable(constAFilename:string):functionFileIsText(constAFilename:string):functionFileIsText(constAFilename:outFileReadable:boolean):functionFilenameIsTrimmed(constTheFilename:string):functionFilenameIsTrimmed(StartPos:PCNameLen:integer):functionTrimFilename(constAFilename:string):functionResolveDots(constAFilename:string):ProcedureForcePathDelims(VarFileName:string);FunctionGetForcedPathDelims(ConstFileName:string):SfunctionCleanAndExpandFilename(constFilename:string):空的字符串返回当前目录functionCleanAndExpandDirectory(constFilename:string):空的字符串返回当前目录functionTrimAndExpandFilename(constFilename:constBaseDir:string):空的字符串返回空的字符串functionTrimAndExpandDirectory(constFilename:constBaseDir:string):空的字符串返回空的字符串functionTryCreateRelativePath(constDest,Source:SUsePointDirectory:AlwaysRequireSharedBaseFolder:BoutRelPath:String):BfunctionCreateRelativePath(constFilename,BaseDirectory:UsePointDirectory:AlwaysRequireSharedBaseFolder:BooleanTrue):functionFileIsInPath(constFilename,Path:string):functionAppendPathDelim(constPath:string):functionChompPathDelim(constPath:string):搜索路径functionCreateAbsoluteSearchPath(constSearchPath,BaseDirectory:string):functionCreateRelativeSearchPath(constSearchPath,BaseDirectory:string):functionMinimizeSearchPath(constSearchPath:string):functionFindPathInSearchPath(APath:PCAPathLen:SearchPath:PCSearchPathLen:integer):PCfunctionFindPathInSearchPath(constAPath,SearchPath:string):文件操作functionFileExistsUTF8(constFilename:string):functionFileAgeUTF8(constFileName:string):LfunctionDirectoryExistsUTF8(constDirectory:string):BfunctionExpandFileNameUTF8(constFileName:{const}BaseDir:string):functionFindFirstUTF8(constPath:Attr:LoutRslt:TSearchRec):LfunctionFindNextUTF8(varRslt:TSearchRec):LprocedureFindCloseUTF8(varF:TSearchrec);文件属性functionFileSetDateUTF8(constFileName:SAge:Longint):LfunctionFileGetAttrUTF8(constFileName:String):LfunctionFileSetAttrUTF8(constFilename:SAttr:longint):LfunctionDeleteFileUTF8(constFileName:String):BfunctionRenameFileUTF8(constOldName,NewName:String):BfunctionFileSearchUTF8(constName,DirList:SImplicitCurrentDir:BooleanTrue):SfunctionFileIsReadOnlyUTF8(constFileName:String):B获取、设置、创建、移除或强制移动目录functionGetCurrentDirUTF8:SfunctionSetCurrentDirUTF8(constNewDir:String):BfunctionCreateDirUTF8(constNewDir:String):BfunctionRemoveDirUTF8(constDir:String):BfunctionForceDirectoriesUTF8(constDir:string):B文件打开或创建functionFileOpenUTF8(ConstFileName:Mode:Integer):THfunctionFileCreateUTF8(ConstFileName:string):THfunctionFileCreateUTF8(ConstFileName:Rights:Cardinal):THFunctionFileCreateUtf8(ConstFileName:SShareMode:IRights:Cardinal):TH文件属性或大小functionFileSizeUtf8(constFilename:string):int64;functionGetFileDescription(constAFilename:string):functionReadAllLinks(constFilename:{H}ExceptionOnError:boolean):如果一个链接是破损的,返回functionTryReadAllLinks(constFilename:string):如果一个链接是破损的,返回文件名称functionGetShellLinkTarget(constFileName:string):针对调试期间functionDbgSFileAttr(Attr:LongInt):STPhysicalFilenameOnError(pfeException,pfeEmpty,pfeOriginal);获取FileNameOnError获取文件名称GettingfilenameexceptforUnixfunctionGetPhysicalFilename(constFilename:OnError:TPhysicalFilenameOnError):forUnixfunctionGetUnixPhysicalFilename(constFilename:ExceptionOnError:boolean):如果一个链接是破损的,返回获取路径functionGetAppConfigDirUTF8(Global:BCreate:booleanfalse):functionGetAppConfigFileUTF8(Global:BSubDir:CreateDir:booleanfalse):functionGetTempFileNameUTF8(constDir,Prefix:String):SUNC路径functionIsUNCPath(const{H}Path:String):BfunctionExtractUNCVolume(const{H}Path:String):SfunctionExtractFileRoot(FileName:String):SDarwin(macOS)路径functionGetDarwinSystemFilename(Filename:string):functionGetDarwinNormalizedFilename(Filename:nForm:Integer2):Windows路径functionSHGetFolderPathUTF8(ID:Integer):S命令行参数procedureSplitCmdLineParams(constParams:ParamList:TSReadBackslash:booleanfalse);functionStrToCmdLineParam(constParam:string):functionMergeCmdLineParams(ParamList:TStrings):高速缓冲存储器TInvalidateFileStateCacheEventprocedure(constFilename:string);varOnInvalidateFileStateCache:TInvalidateFileStateCacheEprocedureInvalidateFileStateCache(constFilename:string);