[译] wxWidgets - File functions - 文件/文件夹函数
2013-03-02 23:59 wid 阅读(4401) 评论(0) 编辑 收藏 举报文件/文件夹函数
所属头文件
<wx/filefn.h>
参见
wxPathList
wxDir
wxFile
wxFileName
::wxDos2UnixFilename
::wxFileExists
::wxFileModificationTime
::wxFileNameFromPath
::wxFindFirstFile
::wxFindNextFile
::wxGetDiskSpace
::wxGetFileKind
::wxGetOSDirectory
::wxIsAbsolutePath
::wxDirExists
::wxPathOnly
::wxUnix2DosFilename
wxCHANGE_UMASK
::wxConcatFiles
::wxCopyFile
::wxGetCwd
::wxGetWorkingDirectory
::wxGetTempFileName
::wxIsWild
::wxMatchWild
::wxMkdir
::wxParseCommonDialogsFilter
::wxRemoveFile
::wxRenameFile
::wxRmdir
::wxSetWorkingDirectory
::wxSplitPath
::wxTransferFileToStream
::wxTransferStreamToFile
::wxDos2UnixFilename
void wxDos2UnixFilename(wxChar *s)
通过将反斜杠(\)替换为正斜杠(/)来实现DOS格式的文件名到Unix格式的转换。
::wxFileExists
bool wxFileExists(const wxString& filename)
检测文件是否存在, 当 filename 存在并且为文件时返回 true 。
::wxFileModificationTime
time_t wxFileModificationTime(const wxString& filename)
返回给定文件的最后一次修改时间。
函数返回 (time_t)-1 表示遇到错误(例如: 文件未找到时)。
::wxFileNameFromPath
wxString wxFileNameFromPath(const wxString& path)
char * wxFileNameFromPath(char *path)
注意: 该函数已被废弃, 请使用 wxFileName::SplitPath 代替。
从完整路径中返回分离出的文件名。第二种形式返回一个指向临时存储区的指针, 该临时存储区域所占用的空间不应该被释放。
::wxFindFirstFile
wxString wxFindFirstFile(const char *spec, int flags = 0)
该函数用于在所指定的目录中做搜索, 返回符合通配符 spec 的第一个文件路径, 或空字符串。使用 wxFindNextFile 匹配符合条件的下一个文件。所匹配的结果不会包含当前目录 "." 或上级目录 ".."。
警告
从 wx 2.5.2 版本起, 这两个函数会令线程变得不安全! (它们使用静态变量)。你或许会使用 wxDir::GetFirst 或 wxDirTraverser 来进行替代。
spec 为可能需要包含的通配符。
flags 为允许匹配的类型标识, wxDIR 匹配子目录, wxFILE 匹配文件。
例如:
wxString f = wxFindFirstFile("/home/project/*.*"); while ( !f.empty() ) { ... f = wxFindNextFile(); }
::wxFindNextFile
wxString wxFindNextFile()
返回符合 wxFindFirstFile 函数中匹配条件的下一个文件路径。
参见 wxFindFirstFile 中的示例。
::wxGetDiskSpace
bool wxGetDiskSpace(const wxString& path, wxLongLong *total = NULL, wxLongLong *free = NULL)
该函数以字节为单位返回目录路径 path (路径应当存在) 所在盘符的总空间和剩余空间大小。 当你不需要其中某个相应的信息时, total 和 free 参数可以设为 NULL。
返回值
返回 true 表示成功, false 表示遇到错误 (例如, 目录路径不存在)。
可移植性
该函数仅应用于 Win32 平台, Mac OS 和 通用 Unix 系统提供有 statfs() 函数。
该函数首次添加于 wxWidgets 2.3.2。
::wxGetFileKind
wxFileKind wxGetFileKind(int fd)
wxFileKind wxGetFileKind(FILE *fp)
返回一个已经打开的文件的类型。可能的值如下:
enum wxFileKind { wxFILE_KIND_UNKNOWN, wxFILE_KIND_DISK, // 支持求任意偏移量的文件 译者注: 磁盘文件 wxFILE_KIND_TERMINAL, // 终端设备文件 wxFILE_KIND_PIPE // 管道文件 };
所属头文件
<wx/filefn.h>
::wxGetOSDirectory
wxString wxGetOSDirectory()
返回当前 Windows 系统所在的目录; 其他平台返回一个空的字符串。
::wxIsAbsolutePath
bool wxIsAbsolutePath(const wxString& filename)
判断是否为绝对路径, 是绝对路径时返回 true, 例如, 带有斜杠或者以盘符开始的路径。
::wxDirExists
bool wxDirExists(const wxChar *dirname)
检测目录是否存在, 当路径 dirname 存在且为目录时返回 true 。
::wxPathOnly
wxString wxPathOnly(const wxString& path)
返回完整文件路径 path 的目录部分。
::wxUnix2DosFilename
void wxUnix2DosFilename(wxChar *s)
该函数已被废弃, 使用 wxFileName 代替。
通过斜杠替换为反斜杠的方式将 Unix 路径转为 Dos 路径。
wxCHANGE_UMASK
wxCHANGE_UMASK(int mask)
在 Unix 下, 使用该宏将可以将当前文件权限的掩码更改为给定值, 当值为 -1 时表示什么也不做, 将值恢复为默认值范围后退出。它的工作原理是声明一个对象, 在对象调用构造函数时设定 umask 为 mask, 当析构函数被调用时进行复位。
在其他平台上该宏无扩展。
::wxConcatFiles
bool wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3)
合并 file1 and file2 到 file3, 成功时返回 true 。
::wxCopyFile
bool wxCopyFile(const wxString& file1, const wxString& file2, bool overwrite = true)
复制 file1 到 file2, 成功时返回 true 。如果目标文件已经存在, 当 overwrite 参数为 true (默认), 文件将被覆盖, 为 false 时, 不进行复制, 函数执行失败。
::wxGetCwd
wxString wxGetCwd()
返回一个包含当前路径(或工作路径)的字符串。
::wxGetWorkingDirectory
wxChar* wxGetWorkingDirectory(char *buf=NULL, int sz=1000)
注意: 该函数已被废弃: 使用 wxGetCwd 代替。
当 buf 存在时, 复制当前工作路径到 buf; 当 buf 不存在时, 复制当前工作路径到自动分配的存储区(这时你必须自己手动释放)。
sz 为缓冲区大小, 如果 buf 存在的话。
//译者注: 该函数提供的函数原型与文档中不同, 译者采用 .h 头文件中的原型, 文档中的函数原型为: wxString wxGetWorkingDirectory(char *buf=NULL, int sz=1000)
::wxGetTempFileName
char * wxGetTempFileName(const wxString& prefix, char *buf=NULL)
bool wxGetTempFileName(const wxString& prefix, wxString& buf)
注意: 该函数已被废弃, 请使用 wxFileName::CreateTempFileName 代替。
::wxIsWild
bool wxIsWild(const wxString& pattern)
判断是否包含通配符, 当 pattern 中包含通配符时返回 true 。 令见 wxMatchWild。
::wxMatchWild
bool wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special)
当 text 能够被 pattern 匹配时返回 true; 若 dot_special 为 true, 以点('.')开始的文件名将不会被匹配。另见 wxIsWild。
::wxMkdir
bool wxMkdir(const wxString& dir, int perm = 0777)
创建一个目录 dir, 返回 true 时表示成功。
perm 参数为访问掩码, 该参数指定了 dir 目录的具体的访问权限, 被 Unix 系统所支持, 在其他平台上没有影响。
::wxParseCommonDialogsFilter
int wxParseCommonDialogsFilter(const wxString& wildCard, wxArrayString& descriptions, wxArrayString& filters)
用于解析通配符 wildCard, 返回解析出的数量。 返回 0 表示没有一个或者出现了问题。 在发现错误前, 数组中将包含已解析到的相等数目的元素。 在本地通用对话框中, 每个条目只有一个过滤器, 所给定的数组元素数目会自动调整。 wildCard 通配符形式:
"All files (*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png"
::wxRemoveFile
bool wxRemoveFile(const wxString& file)
删除 file 文件, 返回 true 表示成功。
::wxRenameFile
bool wxRenameFile(const wxString& file1, const wxString& file2, bool overwrite = true)
重命名 file1 为 file2, 返回 true 表示成功。
当目标文件已经存在时, 若 overwrite 参数为 true (默认), 文件将被覆盖, overwrite 为 false, 不进行重命名, 函数返回失败。
::wxRmdir
bool wxRmdir(const wxString& dir, int flags=0)
删除 dir 目录, 翻译 true 表示成功。 在虚拟机下使用无效。
参数 flags 目前为保留参数, 在以后可能会使用到。
请注意还有一个 wxRmDir 函数, 该函数是可移植性操作系统接口标准函数 rmdir() 的封装, 它会返回一个 int 型的错误标识代替 bool 型( 但是在其他方面目前与 wxRmdir 相同 ), 不要将这两个函数弄混淆。
::wxSetWorkingDirectory
bool wxSetWorkingDirectory(const wxString& dir)
设置当前工作目录, 返回 true 表示操作成功。 在 Windows 下, 若 dir 所在的磁盘分区与当前使用的分区格式不同, 那么磁盘驱动器也将发生改变。
::wxSplitPath
void wxSplitPath(const char * fullname, wxString * path, wxString * name, wxString * ext)
注意: 该函数已被废弃, 请使用 wxFileName::SplitPath 代替。
该函数用于从完整的文件路径中分离出不同的成分: 路径 path (在 Windows 下可能包含磁盘驱动器名), 基础文件名和文件扩展名。如果只对其中特定的成分感兴趣, 其中不需要的参数 (path, name 或 ext) 都可以为空。
在 Windows 中, wxSplitPath() 能够正确的处理 DOS 和 Unix 路径中的文件名, 但是在 Unix 中, 函数不会以反斜杠作为路径分离标识( 例如反斜杠在文件名中是有效的字符 )。
在使用时, fullname 应该不为空 (虽然它可能为空)。
在获得的值中, path 中包含的是文件路径 (不含结尾处的分隔符), name 为文件名; ext 为不含点('.')的扩展名。 如果相应成分不存在, 那么三个参数都有可能得到空值。在这种情况下, 参数中所指向的旧的内容将被重写 (如果指针不为空).
::wxTransferFileToStream
bool wxTransferFileToStream(const wxString& filename, ostream& stream)
拷贝给定的文件转换为 stream 流形式。 当需要用流去改写旧式的应用程序时是非常有用的。 (例如, 在文档/视图的框架中)。//译者注: 该句的翻译可能存在问题
所属头文件
<wx/docview.h>
::wxTransferStreamToFile
bool wxTransferStreamToFile(istream& stream const wxString& filename)
拷贝给定的 stream 流转换到一个文件 filename 。当需要用流去改写旧式的应用程序时是非常有用的。 (例如, 在文档/视图的框架中)。//译者注: 该句的翻译可能存在问题
所属头文件
<wx/docview.h>
官方原文: http://docs.wxwidgets.org/2.8/wx_filefunctions.html
[译者注] 笔者英语水平较水, 所译内容仅供参考, 如有错误之处恳请指正!
--------------------
wid, 2013.03.02