WEB开发网
开发学院操作系统Linux/Unix 了解 Boost Filesystem Library 阅读

了解 Boost Filesystem Library

 2008-11-13 08:29:37 来源:WEB开发网   
核心提示: 清单 1. 用于确定某个文件的类型是否为 Directory 的代码#include <stdio.h>#include “boost/filesystem.hpp”int main(){boost::filesystem::path path(&quo

清单 1. 用于确定某个文件的类型是否为 Directory 的代码

#include <stdio.h>
#include “boost/filesystem.hpp”
int main()
 {
 boost::filesystem::path path("/usr/local/include"); // random pathname
 bool result = boost::filesystem::is_directory(path); 
 printf(“Path is a directory : %dn”, result);
 return 0;
 }

此代码非常明了易懂,您并不需要了解任何系统特定的例程。此代码经过验证,能在不用修改的情况下在 gcc-3.4.4 和 cl-13.10.3077 上成功编译。

了解 Boost path 对象

了解 Boost Filesystem Library 的关键是 path 对象,因为 Filesystem Library 中定义的多个例程都要对相应的 path 对象操作。文件系统路径通常依赖于操作系统。例如,众所周知,UNIX 和 Linux 系统使用正斜杠 ( /) 字符作为目录分隔符,而 Windows 将反斜杠 () 字符用于类似的用途。boost::filesystem::path 旨在准确地抽象此特性。path 对象可以通过多种方式进行初始化,最常见的方式是使用 char* 或 std::string 进行初始化,如清单 2 中所示。

清单 2. 创建 Boost path 对象的方法

path(); // empty path
path(const char* pathname);
path(const std::string& pathname);
path(const char* pathname, boost::filesystem::path::name_check checker);
path(const char* pathname, boost::filesystem::path::name_check checker);

在初始化 path 对象时,可以采用本机格式或可移植操作系统接口(Portable Operating System Interface,POSIX)委员会定义的可移植格式提供 PATHNAME 变量。这两种方法在实际中各有优缺点。考虑以下情况:您希望操作软件所创建的目录,此目录在 UNIX 和 Linux 系统上位于 /tmp/mywork,而在 Windows 上位于 C:tmpmywork。可以采用多种方法处理问题。清单 3 显示了面向本机格式的方法。

上一页  1 2 3 4 5 6 7  下一页

Tags:了解 Boost Filesystem

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接