草庐IT

filesystems

全部标签

c++ - 可移植 VFS 库 C++

有没有人遇到过满足这些要求的优秀文件系统虚拟化库?跨平台:至少是Win32和Linux,最好是OSX支持协议(protocol):中小企业FTPSFTP本地FS基于URL与客户端工厂的抽象C++接口(interface):smb://[用户[:密码]@]主机/共享/路径...ftp://[用户[:密码]@]主机/路径...sftp://[用户[:密码]@]主机/路径...文件://路径...提供以下方法:列出目录,最好返回具有类似structstat属性的条目移动复制删除数据奖励:低级文件访问接口(interface)(打开、读取、写入、关闭...)我见过一些满足这些要求的子集的好库(

c++ - 如何检测单个文件的文件系统大小限制

有没有办法检测单个文件的文件系统大小限制(例如fat32上的4gb)?它必须在Windows操作系统上运行,但最好是一个可移植的解决方案。检测文件系统类型可能是一种变通方法,但我也不知道您该怎么做。有人可以帮我吗?提前谢谢你托拜厄斯 最佳答案 您可以使用GetVolumeInformation在Windows上检测文件系统类型 关于c++-如何检测单个文件的文件系统大小限制,我们在StackOverflow上找到一个类似的问题: https://stackov

C++:比较 boost::filesystem 中的路径时如何忽略第一个目录路径?

我正在尝试比较两个目录并找出里面有哪些不同的文件。所以我使用boost::filesystem::recursive_directory_iterator将每个目录的所有内容添加到相应的vector中。然后我按字母顺序对每个vector进行排序并开始比较路径。问题是它包含“基本”路径,我不希望这样,例如:Version1/Assets/info.txtVersion2/Assets/info.txt那些路径比较不同,但我希望它们比较相同。澄清一下,我什至还没有检查二进制文件,到目前为止只是路径名。我会这样比较它们:/Assets/信息.txt我已经浏览了几个小时的boost文档,我相信

c++ - 我可以使用 Google NaCl 访问文件系统吗?

由于GoogleNaCl是C++,我能否以某种方式访问​​文件系统?如果我要创建游戏或桌面应用程序,那是非常需要的。 最佳答案 由于安全限制,NaCl不允许您打开磁盘上的任何文件夹。但是,它确实授予访问沙盒、混淆文件系统的能力。您可以查看最新SDK中的PONG示例,了解如何使用FileSystemAPI的示例。此外,此页面是了解文件系统工作原理的良好起点:https://developers.google.com/native-client/beta-docs/fileIO~主 关于c+

c++ - 为什么我还必须使用 -lstdc++fs?

有几个关于获取experimental/filesystem的问题在最新版本的GCC和Clang中编译:experimental::filesystemlinkererror但是现在filesystem已被接受为c++17所以不再需要experimental或-lstdc++fs旗帜,对吧?错我什至不能#include在任一clang++的头部版本或g++当我试穿时:http://melpon.org/wandbox我还需要一些其他论据吗?-lstdc++fs就给我experimental版本,如何包含官方接受的版本? 最佳答案 C

c++ - boost::filesystem 添加引号?

当使用boost_filesystem时,Boost不断地为文件名添加引号。foo.cpp:#include#includeintmain(intargc,char*argv[]){std::cout编译:g++foo.cpp-ofoo-lboost_filesystem-lboost_system输出:./foo"./foo""foo"这有点出乎我的意料,而且对我来说很不方便。这真的是故意的,还是我的Boost(1.46.1)版本稍旧一些?有什么方法可以避免添加它们?我仔细阅读了文档,但除了教程没有在示例输出中显示这些引号外,我没有受到启发。 最佳答案

c++ - 使用锁定文件作为多个进程之间的锁定的正确方法

我遇到这样一种情况,其中2个不同的进程(我的C++,其他由JAVA中的其他人完成)是某个共享数据文件的写入者和读取者。所以我试图通过编写这样的类来避免竞争条件(编辑:此代码已损坏,这只是一个示例)classReadStatus{boolcanRead;public:ReadStatus(){if(filesystem::exists(noReadFileName)){canRead=false;return;}ofstreamnoWriteFile;noWriteFile.open(noWriteFileName.c_str());if(!noWriteFile.is_open()){

c++ - boost::filesystem::remove_all(path) 是如何工作的?

我正在尝试使用boost::filesystem::remove_all(path)从特定路径中删除所有目录、子目录和包含的文件。如果文件在另一个程序中打开,我还想显示一条错误消息。在这种情况下boost::filesystem::remove_all(path)会抛出异常吗?或者有其他方法可以实现吗? 最佳答案 这不适合发表评论,所以我发布为答案只需查看源代码:http://www.boost.org/doc/libs/1_55_0/libs/filesystem/src/operations.cppBOOST_FILESYSTE

c++ - 如何检查文件是否为常规文件?

如果文件是常规文件(而不是目录、管道等),我如何在C++中检查?我需要一个函数isFile()。DIR*dp;structdirent*dirp;while((dirp=readdir(dp))!=NULL){if(isFile(dirp)){cout我试过将dirp->d_type与(unsignedchar)0x8进行比较,但它似乎无法通过不同的系统移植。 最佳答案 您可以使用可移植boost::filesystem(直到最近在C++17中引入std::filesystem,标准C++库才能做到这一点):#include#inc

c++ - 为什么路径比较在最新的文件系统草案(C++)中区分大小写?

引自ProgrammingLanguages—C++—FileSystemTechnicalSpecificationdraftN4100:8.4.8pathcompare[path.compare]1intcompare(constpath&p)constnoexcept;2Returns:Avaluelessthan0ifnative()fortheelementsof*thisarelexicographicallylessthannative()fortheelementsofp,otherwiseavaluegreaterthan0ifnative()fortheelemen