西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页编程开发其它知识 → wxWidgets - 文件/文件夹函数

wxWidgets - 文件/文件夹函数

相关软件相关文章发表评论 来源:西西整理时间:2013/3/3 9:04:12字体大小:A-A+

作者:西西点击:0次评论:0次标签: 文件函数

  • 类型:视频转换大小:1.7M语言:中文 评分:5.5
  • 标签:
立即下载

wxwidgets是一个C++的跨平台的开发包,主要做图形界面的开发,它自己也集成了很多库,像socket之类的也都有。当然我自己用这个开发包也就是奔着图形界面来的。

wxwidgets vs MFC:这两风格很像,在源代码中用了很多的宏定义,谁模仿谁我就不去关心了,反正对于MFC比较熟悉的人应该对wxwidgets感觉不错。MFC中大量运用虚函数,而wxwidgets中大量用重载,理论上说wxwidgets的运行效率要比MFC高一些。

wxWidgets的一些基础知识:

● wxWidgets不仅仅使用C++,而且能够使用python、perl、java、lua、eiffel、C#(.NET)、basic、ruby,甚至是javascript(见General Information)(豆子:有些语言连听都没听说过,呵呵);
● wxWidgets是一个完整的GUI工具库,提供了很多工具类;
● 有很多文档(虽然一些只是文档片段);
● 免费供个人使用或者商业使用;
● 只要可能,wxWidgets就会使用本地平台的SDK。也就是说,同一段代码,在Windows下编译将具有Windows程序的外观,在Linux下编译将具有Linux程序的外观;
○ 这样做的优点是,wxWidgets程序看上去和本地程序差不多,有时也会有一些本地组件的行为——例如在OS X上所有的文本域(text area)都将获得内建的拼写检查的能力;
○ 这样做的缺点是,wxWidgets程序在不同平台的行为可能会不一致;那些使用轻量级组件的GUI库或许会丢失一些特定平台的特性,但会将平台相关的代码减到最少(因此,这样做也能够将不同平台组件的行为差异降到最小,并且减少了特定平台的bugs)。另外,由于使用本地感官风格,使得wxWidgets不适合于那些希望具有不同于系统界面风格的程序的开发。

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::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>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)
    推荐文章

    没有数据