编辑:我使用的是 std::tr2::sys 而不是 boost 的文件系统
我正在开发一个简单的应用程序,它可以扫描计算机上的目录并返回有关这些文件的统计信息。可以通过两种方式调用扫描:递归和非递归。将路径与是否应递归执行扫描的标志一起传递给扫描方法。鉴于这path folder
两个实现看起来像这样:
directory_iterator start( folder ), end;
for( ; start != end; ++start ) {
//Some code in here
// get the path like this:
auto path = start->path();
}
或者
recursive_directory_iterator start( folder ), end;
for( ; start != end; ++start ) {
//Some code in here
// get the path like this:
auto path = start->path();
}
我遇到的问题是,在使用常规 directory_iterator 的块中,当我尝试获取路径时,它只会返回文件名,即。“myTextFile.txt” 从 recursive_directory_iterator 获取它会返回系统上文件的完整路径。在每种情况下,文件夹的值都是相同的(也是完整的文件路径)。路径的前半部分被截断是有原因的,还是有什么方法可以从我从 directory_iterator 返回的缩写路径中获取完整的文件路径?