📄 filesys.hhf
字号:
#if( ! @defined( filesys_hhf ))?filesys_hhf := true;#includeOnce( "os.hhf" )#includeOnce( "hla.hhf" )#includeOnce( "stdio.hhf" )/*********************************************************************//* *//* *//* filesys namespace *//* *//* *//*********************************************************************/namespace filesys; @fast; procedure delete( filename:string ); @external( "FILESYS_DELETE" ); procedure rename( fromPath:string; toPath:string ); @external( "FILESYS_RENAME" ); procedure mkdir( directory:string ); @external( "FILESYS_MKDIR" ); procedure rmdir( directory:string ); @external( "FILESYS_RMDIR" ); procedure cd( directory:string ); @external( "FILESYS_CD" ); procedure exists( FileName:string ); @returns( "EAX" ); @external( "FILESYS_EXISTS" ); procedure isFile( FileName:string ); @returns( "EAX" ); @external( "FILESYS_ISFILE" ); procedure isDir( FileName:string ); @returns( "EAX" ); @external( "FILESYS_ISDIR" ); procedure gwd( directory:string ); @external( "FILESYS_GWD" ); #macro size( parameter ); #if( @typename( parameter ) = "string" ) filesys._sizen_( parameter ); #elseif( @typename( parameter ) = "dword" ) filesys._sizeh_( parameter ); #elseif( @size( parameter ) = 4 ) #print ( "Warning: assuming '", @string:parameter, "' parameter is a handle" ); filesys._sizeh_( parameter ); #else #error( "Illegal parameter type (expected dword or string)" ); #endif #endmacro procedure _sizeh_( handle:dword ); @returns( "EAX" ); @external( "FILESYS_SIZEHANDLE" ); procedure _sizen_( filename:string ); @returns( "EAX" ); @external( "FILESYS_SIZENAME" ); // Directory iterators: iterator fileWithSuffix( directory:string; suffix:string ); @external( "FILESYS_FILEWITHSUFFIX" ); iterator fileIn( directory:string ); @external( "FILESYS_FILEIN" ); iterator fileInCwd; @external( "FILESYS_FILEINCWD" ); iterator dirIn( directory:string ); @external( "FILESYS_DIRIN" ); iterator dirInCwd; @external( "FILESYS_DIRINCWD" ); iterator itemInCwd; @external( "FILESYS_ITEMINCWD" ); iterator itemWithSuffix( directory:string; suffix:string ); @external( "FILESYS_ITEMWITHSUFFIX" ); // Filename predicate functions: procedure hasDriveLetter( pathname:string ); @returns( "@c" ); // and AL @external( "FILESYS_HASDRIVELETTER" ); procedure hasExtension( pathname:string ); @returns( "@c" ); // and EAX @external( "FILESYS_HASEXTENSION" ); procedure hasUncName( pathname:string ); @returns( "@c" ); // and EAX @external( "FILESYS_HASUNCNAME" ); procedure hasPath( pathname:string ); @returns( "@c" ); @external( "FILESYS_HASPATH" ); // pathname component extraction functions: procedure a_extractBase( pathname:string ); @returns( "@c" ); // and EAX @external( "FILESYS_A_EXTRACTBASE" ); procedure a_extractExt( pathname:string ); @returns( "@c" ); // and eax @external( "FILESYS_A_EXTRACTEXT" ); procedure a_extractFilename( pathname:string ); @returns( "@c" ); // and EAX @external( "FILESYS_A_EXTRACTFILENAME" ); procedure a_extractPath( pathname:string ); @returns( "@c" ); // and EAX @external( "FILESYS_A_EXTRACTPATH" ); procedure extractBase( pathname:string; base:string ); @returns( "@c" ); @external( "FILESYS_EXTRACTBASE" ); procedure extractExt( pathname:string; dest:string ); @returns( "@c" ); @external( "FILESYS_EXTRACTEXT" ); procedure extractFilename( pathname:string; fName:string ); @returns( "@c" ); @external( "FILESYS_EXTRACTFILENAME" ); procedure extractPath( pathname:string; dest:string ); @returns( "@c" ); @external( "FILESYS_EXTRACTPATH" ); // Pathname conversion and manipulation functions: procedure a_joinPaths( leftPath:string; rightPath:string ); @returns( "eax" ); @external( "FILESYS_A_JOINPATHS" ); procedure a_normalize( path:string ); @returns( "eax" ); @external( "FILESYS_A_NORMALIZE" ); procedure a_toUnixPath( pathname:string ); @returns( "eax" ); @external( "FILESYS_A_TOUNIXPATH" ); procedure a_toWin32Path( pathname:string ); @returns( "eax" ); @external( "FILESYS_A_TOWIN32PATH" ); procedure joinPaths( leftPath:string; rightPath:string; dest:string ); @external( "FILESYS_JOINPATHS" ); procedure normalize1( pathname:string ); @returns( "@c" ); @external( "FILESYS_NORMALIZE1" ); procedure normalize2( pathname:string; dest:string ); @returns( "@c" ); @external( "FILESYS_NORMALIZE2" ); procedure toUnixPath1( pathname:string ); @external( "FILESYS_TOUNIXPATH1" ); procedure toUnixPath2( pathname:string; dest:string ); @external( "FILESYS_TOUNIXPATH2" ); procedure toWin32Path1( pathname:string ); @external( "FILESYS_TOWIN32PATH1" ); procedure toWin32Path2( pathname:string; dest:string ); @external( "FILESYS_TOWIN32PATH2" ); #if( @global:os.win32 ) const toNativePath1 :text := "toWin32Path1"; toNativePath2 :text := "toWin32Path2"; a_toNativePath :text := "a_toWin32Path"; #else const toNativePath1 :text := "toUnixPath1"; toNativePath2 :text := "toUnixPath2"; a_toNativePath :text := "a_toUnixPath"; #endif procedure a_getFullPathName( partialPath:string ); @returns( "eax" ); @external( "FILESYS_A_GETFULLPATHNAME" ); procedure getFullPathName( partialPath:string; fullPath:string ); @returns( "eax" ); @external( "FILESYS_GETFULLPATHNAME" ); end filesys;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -