代码改变世界

[译] wxWidgets - File functions - 文件/文件夹函数

2013-03-02 23:59  wid  阅读(4398)  评论(0编辑  收藏  举报

wxWidgets - 文件/文件夹函数

文件/文件夹函数

所属头文件

<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::GetFirstwxDirTraverser 来进行替代。

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 (路径应当存在) 所在盘符的总空间和剩余空间大小。 当你不需要其中某个相应的信息时, totalfree 参数可以设为 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 file2file3, 成功时返回 true 。


::wxCopyFile

bool wxCopyFile(const wxString& file1, const wxString& file2, bool overwrite = true)

复制 file1file2, 成功时返回 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)

重命名 file1file2, 返回 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, nameext) 都可以为空。

在 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

 

上一篇: [译] wxWidgets - wxDir