BlitzMax/模块/系统/文件系统
BlitzMax 文件系统模块包含用于对计算机的文件和目录执行操作的命令。
OpenFile、ReadFile 和 WriteFile 返回一个流对象,用于读取和/或写入文件数据。
可以使用 ReadDir、NextFile 和 CloseDir 命令的组合逐个文件检查目录,或者可以使用 LoadDir 将目录的文件名读取到字符串数组中。
可以使用 FileType、FileTime、FileSize 和 FileMode 命令检查文件属性。
可以使用 CreateFile、CreateDir DeleteFile 和 DeleteDir 命令创建和删除文件和目录(文件夹)。
最后,FileSystem 模块包含各种实用程序函数,用于以系统无关的方式处理文件路径。这些命令包括 RealPath、StripDir、StripExt、StripAll、ExtractDir 和 ExtractExt。
函数 StripDir$( path$ )
描述:从文件路径中删除目录
示例:
' stripdir.bmx print stripdir("mypath/myfile.bmx") 'prints myfile.bmx
函数 StripExt$( path$ )
描述:从文件路径中删除扩展名
示例:
' stripext.bmx print stripext("mypath/myfile.bmx") 'prints mypath/myfile
函数 StripAll$( path$ )
描述:从文件路径中删除目录和扩展名
示例:
' stripall.bmx print stripall("mypath/myfile.bmx") 'prints myfile
函数 StripSlash$( path$ )
描述:从文件路径中删除尾部斜杠
信息:StripSlash 不会从“根”路径中删除尾部斜杠。例如,“/”或(仅限 Win32)“C:/”。
示例:
' stripslash.bmx print stripslash("mypath/") 'prints mypath
函数 ExtractDir$( path$ )
描述:从文件路径中提取目录
示例:
' extractdir.bmx print extractdir("mypath/myfile.bmx") 'prints mypath
函数 ExtractExt$( path$ )
描述:从文件路径中提取扩展名
示例:
' extractext.bmx print extractext("mypath/myfile.bmx") 'prints bmx
函数 CurrentDir$()
描述:获取当前目录
返回值:当前目录
示例:
' currentdir.bmx cd$=currentdir() print "CurrentDir()="+cd$
函数 RealPath$( path$ )
描述:获取文件路径的真实绝对路径
示例:
' realpath.bmx print realpath("realpath.bmx") 'prints full path of this source print realpath("..") 'prints full path of parent directory
函数 FileType( path$ )
描述:获取文件类型
返回值:如果 path 处文件不存在,则返回 0;如果文件是普通文件,则返回 FILETYPE_FILE (1);如果文件是目录,则返回 FILETYPE_DIR (2)
示例:
' filetype.bmx print filetype(".") 'prints 2 for directory type print filetype("filetype.bmx") 'prints 1 for file type print filetype("notfound.file") 'prints 0 for doesn't exist
函数 FileTime( path$ )
描述:获取文件时间
返回值:path 处文件上次修改的时间
示例:
' filetime.bmx print filetime("filetime.bmx")
函数 FileSize( path$ )
描述:获取文件大小
返回值:path 处文件的大小(以字节为单位),如果文件不存在,则返回 -1
示例:
' filesize.bmx ' the following prints the size of this source file in bytes print filesize("filesize.bmx")
函数 FileMode( path$ )
描述:获取文件模式
返回值:文件模式标志
示例:
' filemode.bmx ' the following function converts the file mode to ' the standard unix permission bits string Function Permissions$(mode) local testbit,pos local p$="rwxrwxrwx" testbit=%100000000 pos=1 while (testbit) if mode & testbit res$:+mid$(p$,pos,1) else res$:+"-" testbit=testbit shr 1 pos:+1 wend return res End Function print Permissions$(filemode("filemode.bmx"))
函数 SetFileMode( path$,mode )
描述:设置文件模式
示例:
' setfilemode.bmx ' the following makes this source file readonly writebits=%010010010 ' read the file mode mode=filemode("setfilemode.bmx") 'mask out the write bits to make readonly mode=mode & ~writebits 'set the new file mode setfilemode("setfilemode.bmx",mode)
函数 CreateFile( path$ )
描述:创建文件
返回值:如果成功,则返回 True
示例:
' createfile.bmx success=createfile("myfile") if not success runtimeerror "error creating file"
函数 CreateDir( path$,recurse=False )
描述:创建目录
返回值:如果成功,则返回 True
信息:如果 recurse 为 true,则还会创建任何必需的子目录。
示例:
' createdir.bmx success=createdir("myfolder") if not success runtimeerror "error creating directory"
函数 DeleteFile( path$ )
描述:删除文件
返回值:如果成功,则返回 True
示例:
' deletefile.bmx success=deletefile("myfile") if not success runtimeerror "error deleting file"
Function RenameFile( oldpath$,newpath$ )
描述:重命名文件
返回值:如果成功,则返回 True
Function CopyFile( src$,dst$ )
描述:复制文件
返回值:如果成功,则返回 True
Function CopyDir( src$,dst$ )
描述:复制目录
返回值:如果成功,则返回 True
Function DeleteDir( path$,recurse=False )
描述:删除目录
返回值:如果成功,则返回 True
信息:将recurse设置为true以递归删除所有子目录和文件 - 但请谨慎操作!
示例:
' deletedir.bmx success=deletedir("myfolder") if not success runtimeerror "error deleting directory"
Function ChangeDir( path$ )
描述:更改当前目录
返回值:如果成功,则返回 True
示例:
' changedir.bmx print "CurrentDir()="+currentdir() ' change current folder to the parent folder changedir ".." ' print new CurrentDir() print "CurrentDir()="+currentdir()
Function ReadDir( path$ )
描述:打开目录
返回值:一个整数目录句柄,如果目录不存在则返回0
示例:
' readdir.bmx dir=ReadDir(CurrentDir()) If Not dir RuntimeError "failed to read current directory" Repeat t$=NextFile( dir ) If t="" Exit If t="." Or t=".." Continue Print t Forever CloseDir dir
Function NextFile$( dir )
描述:返回目录中的下一个文件
返回值:使用ReadDir打开的目录中下一个文件的名称,如果不再有文件可读则返回空字符串。
Function CloseDir( dir )
描述:关闭目录
Function LoadDir$[]( dir$,skip_dots=True )
描述:加载目录
返回值:包含dir内容的字符串数组
信息:如果skip_dots参数为真,则从返回的数组中删除“.”(当前)和“..”(父)目录。
示例:
' loaddir.bmx ' declare a string array local files$[] files=loaddir(currentdir()) for t$=eachin files print t next
Function OpenFile:TStream( url:Object,readable=True,writeable=True )
描述:打开一个文件以进行输入和/或输出。
信息:此命令类似于OpenStream命令,但会尝试缓存文件的内容以确保诸如http:之类的串行流是可查找的。使用CloseStream命令完成读取和/或写入OpenFile返回的流。
示例:
' openfile.bmx ' the following prints the contents of this source file file=openfile("openfile.bmx") if not file runtimeerror "could not open file openfile.bmx" while not eof(file) print readline(file) wend closestream file
Function ReadFile:TStream( url:Object )
描述:打开一个文件以进行输入。
信息:此命令类似于ReadStream命令,但会尝试缓存文件的内容以确保诸如http:之类的串行流是可查找的。使用CloseStream命令完成读取和/或写入OpenFile返回的流。
示例:
' readfile.bmx ' the following prints the contents of this source file file=readfile("readfile.bmx") if not file runtimeerror "could not open file openfile.bmx" while not eof(file) print readline(file) wend closestream file
Function WriteFile:TStream( url:Object )
描述:打开一个文件以进行输出。
信息:此命令与WriteStream命令相同。
示例:
' writefile.bmx file=writefile("test.txt") if not file runtimeerror "failed to open test.txt file" writeline file,"hello world" closestream file
Function CloseFile( stream:TStream )
描述:关闭文件流。
信息:在对打开的文件执行文件操作后,请确保使用CloseFile或相同的CloseStream命令关闭文件流。