问题标签 [boost-filesystem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++:Boost:在目录导航逻辑方面需要帮助
所以,我正在尝试更改我的目录以保存文件,然后更改回我之前所在的目录。
本质上:
这是我到目前为止的代码:
目前,每次调用该方法时都会发生这种情况:
文件夹不存在:被创建
文件夹不存在:被创建
它没有发挥cd ../
作用。=(
所以我的目录结构如下所示:
文件夹名称
- 文件夹名称
-- 文件夹名称
--- 文件夹名称
c++ - 有一张带路径的地图如何将其与给定的路径进行比较?
我们有字符串对的提升路径映射,例如 name:location (绝对位置路径 a la usr/myfolder/
)。我们得到了一些位置 a la usr/myfolder/mysubfolder/myfile
。如何找到最适合给定网址的地图位置?
示例我们有一张类似的地图,如果需要,我们可以使用它:
我们被赋予了价值myfolder/mysubfolder/myfile/blablabla/
(路径)。我们想找出它与地图中的哪个项目最相关。搜索结果应service4
为相关内容最多的地图项。
那么如何通过给定的字符串值找到与它最相关的地图元素呢?
所以最初的问题是关于一般字符串的情况,但我有一些重新配置,所以不,我只是在提升路径上工作。
c++ - 为 iostream 获取更好的错误消息
我实现了一个小程序,可以提取(并通过 fuse mount)某种存档格式。我使用boost::filesystem::ifstream
,但在出错时(例如,用户想要提取的文件不存在)我收到非常难以描述的错误消息。我想知道有没有办法为 C++ 中的 IO 相关问题获得更好的错误消息?
在相关的说明中,我想知道我是否应该使用 C 语言FILE*
,或者在 fuse 文件系统的情况下只使用普通文件描述符?因为strerror(errno)
比 iostreams 给我的要好得多。
c++ - Boost.Filesystem 崩溃
有没有人有这个问题?使用 recursive_directory_iterator 搜索分区时,到达末尾时会崩溃。
我在 Visual Studio 2008 中使用 boost 1.39 得到这个,但也在家里使用 MinGW 和 boost 1.46。我不认为我做错了什么:
编辑:
我看到它最后没有崩溃,但是当它到达系统卷信息时
c++ - directory_iterator - 复制到“倒带”?
所以我写了一个小程序来试试Boost Filesystem。我的程序将写入当前路径中有多少个文件,然后是文件名。这是我的程序:
现有文件是 program.exe、.ilk 和 .pdb
但是我得到以下输出(为简洁起见,省略了整个路径):
$ program.exe
文件总数:3
[..]/program.pdb
断言失败:m_imp->m_handle != 0 && "internal program error", file c:\program files\boost\boost_1_44\boost\filesystem\ v2\operations.hpp,第 1001 行
如果我做一个新的 directory_iterator 代替它工作正常:
I noticed a similar question related to directory_iterators but I have no idea what they are referring to or if it's the same issue.
Question is: Why can't I save a startiterator and then use that to rewind my iterator?
c++ - BOOST_FILESYSTEM_VERSION 2 path.native_file_string() 的 BOOST_FILESYSTEM_VERSION 3 模拟是什么?
path.native_file_string()
所以我尝试移植我的旧项目(从 boost 1.44到1.61)我发现没有boost::filesystem v3...
那么 in 的模拟是path.native_file_string()
什么boost::filesystem v3
?(我不想再使用 v2 但我需要像 native_file_string 这样的功能)
c++ - 将 Boost.Filesystem 静态链接到共享库的问题
我正在用GCC 4.5.2
and Boost 1.46.1
(用 编译--build-type=complete
)构建一个共享库,这是来自 Makefile 的一个命令,它执行链接部分:
一切都编译得很好,但是当它被应用程序加载时出现以下错误:
ldd
输出:
我相信这意味着它静态链接了Boost。
这nm crashdetect.so -u | grep boost
就是说:
所以我认为既然这个符号在这个列表中排在第一位,那么很可能它没有什么特别之处。
我错过了什么吗?
编辑: 这是不可能的还是什么?
c++ - 为什么这种理论上的跨平台代码不会改变 Windows 上的环境变量?
所以我尝试下一个代码:
我的代码有什么问题?为什么它没有设置任何环境变量,为什么它没有显示任何错误?(WIN代码就是以此为基础的。)
c++ - 从 Visual Studio 2008 切换到 Visual Studio 2010,现在无法链接到 boost 文件系统
我刚从 Visual Studio 2008 切换到 Visual Studio 2010,我的一个项目现在出现链接器错误:
链接:致命错误 LNK1104:无法打开文件“libboost_filesystem-vc90-mt-gd-1_46_1.lib”
我确实重建了 boost,我在 lib 文件夹中看到了 vc10 库,但我无法弄清楚它为什么/如何仍然引用 vc90 库?我检查了链接器属性,并且指向了正确的文件夹(即 vc10 库的文件夹)。在输入部分我没有指定库,所以我不知道它是如何获得对 vc90 库的引用的。
有谁知道这个问题的解决方案是什么?
更新
我用来构建 boost 的构建命令是:
bjam --build-dir=c:\boost --build-type=complete --with-filesystem --toolset=msvc address-model=64 阶段
它自动产生以下输出(除其他外):
阶段\lib\boost_filesystem-vc100-mt-1_46_1.lib
命令行
链接器:
/OUT:"bin\x64\Debug\NEST2.dll" /INCREMENTAL /NOLOGO /LIBPATH:"C:\Users\USER\Desktop\sandbox\boost_1_46_1\bin\x64\lib" /LIBPATH:"C:\Users\ USER\Desktop\sandbox\db-5.1.25\build_windows\x64\Release" /DLL "ws2_32.lib" "advapi32.lib" "libdb51.lib" "kernel32.lib" "user32.lib" "gdi32.lib" “winspool.lib” “comdlg32.lib” “shell32.lib” “ole32.lib” “oleaut32.lib” “uuid.lib” “odbc32.lib” “odbccp32.lib” /MANIFEST /ManifestFile:”tmp\x64\ Debug\NEST2.dll.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\dev\app\NEST2\bin\x64\Debug\NEST2. pdb" /ASSEMBLYDEBUG /SUBSYSTEM:WINDOWS /PGD:"C:\dev\app\NEST2\bin\x64\Debug\NEST2.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X64 /ERRORREPORT:QUEUE
编译器:
/I"C:\Users\USER\Desktop\sandbox\boost_1_46_1" /I"C:\Users\USER\Desktop\sandbox\db-5.1.25\build_windows" /Zi /nologo /W3 /WX- /Od / OT /D“WIN32”/D“_WIN64”/D“_DEBUG”/D“_WINDOWS”/D“_USRDLL”/D“NEST2_EXPORTS”/D“_HAS_ITERATOR_DEBUGGING=0”/D“__SECURE _SCL=0”/D“_WINDLL " /D "_UNICODE" /D "UNICODE" /Gm- /EHsc /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fp"tmp\x64\Debug\NEST2.pch" /Fa"tmp\ x64\Debug\" /Fo"tmp\x64\Debug\" /Fd"tmp\x64\Debug\vc100.pdb" /Gd /errorReport:queue
更新 2.0
现在,如果我能弄清楚为什么它引用了错误的库!
c++ - 使用带有宽字符串的 boost::iostreams::mapped_file_source
如果我用一个窄字符串实例化 mapped_file_source (boost 1.46.1 ),如下所示,我没有问题:
但是,如果我尝试使用宽字符串:
我在 VC2010 SP1 中收到以下编译器错误:
如果我尝试向构造函数传递 boost::filesystem::path ,则会收到以下错误:
我觉得我遗漏了一些明显的东西,但我只是在兜圈子,试图弄清楚编译器试图告诉我什么,但我只是迷路了。那个手掌到额头的时刻只是没有发生..我做错了什么?
mapped_file.hpp 中定义的构造函数如下所示:
basic_mapped_file_params 类构造函数如下所示:
其中模板类定义为:
标题中有一些额外的帮助,上面写着:
如果我采用这种方法:
我得到了上面提到的相同的C2664错误..
我知道编译器告诉我问题出在哪里,但是查看标头源代码和评论让我相信我想要完成的事情是受支持的,只是我的方法不正确。我是否误解了头文件告诉我的内容?我知道这里的某个地方可能有关于模板实例化和显式/隐式转换的好课。
有趣的是,将我的 boost 安装升级到 1.47.0 似乎清除了C2664错误,但我仍然收到有关访问私有成员的C2248错误。