草庐IT

S3FileSystem

全部标签

c++ - 从 boost::filesystem 创建目录成功,但是没有创建目录

我有以下代码,虽然对boost::filesystem::create_directory的调用返回true,但我没有看到在我的项目文件夹中创建目录。这可能是什么原因?boost::filesystem::pathdir("newdir");if(boost::filesystem::create_directory(dir))std::cout我正在使用VS2008和Win7HomePremium。 最佳答案 您可能患有foldervirtualization.还可以尝试使用完整路径创建一个目录,这样您就不会受到任何当前应用程序目

c++ - 为什么在 c++20 中不推荐使用 std::filesystem::u8path?

在c++17中引入,std::filesystem::u8path似乎在c++20中已弃用。这个选择的原因是什么?我应该在c++17中使用什么?c++20应该用什么? 最佳答案 因为,由于C++20特性char8_t的存在,这将起作用:pathp(u8"A/utf8/path");u8path的存在允许检测UTF-8字符串和窄字符串之间的差异。但由于C++20会为此提供一个实际的type,因此不再需要。WhatshouldIuseinc++17?使用u8path。弃用并不意味着已删除或无法访问。它仅仅意味着受到最终删除。

c++ - 为什么 boost::filesystem::canonical() 需要目标路径存在?

boost::filesystem::canonical(constpath&p)的文档状态:Overview:Convertsp,whichmustexist,toanabsolutepaththathasnosymboliclink,dot,ordot-dotelements....Remarks:!exists(p)isanerror.这样做的结果是,如果p标识了一个目标不存在的符号链接(symboliclink),则函数将失败并返回filenotfound并且不返回路径。这对我来说似乎过于严格:仅仅因为链接的目标不存在,我看不出函数无法解析该不存在目标的path的原因。(相比之

c++ - 在 C++17 中使用 <filesystem> 成员链接错误

我在Ubuntu16.04上使用gcc7.2,我需要使用来自C++17的新文件系统库。即使确实有一个名为experimental/filesystem的库,我也不能使用它的任何成员。例如,当我尝试编译这个文件时:#include#include#includeusingnamespacestd;namespacefs=std::experimental::filesystem::v1;intmain(){fs::pathp1="/usr/share/";}我收到如下所示的编译错误:$g++-7test.cpp-std=c++17/tmp/ccfsMnlG.o:Infunction`st

c++ - boost::filesystem::recursive_directory_iterator 带过滤器

我需要递归地从目录及其子目录中获取所有文件,但不包括几个目录。我知道他们的名字。是否可以使用boost::filesystem::recursive_directory_iterator? 最佳答案 是的,在遍历目录时,您可以测试排除列表中的名称并使用递归迭代器的no_push()成员来防止它进入这样的目录,例如:voidselective_search(constpath&search_here,conststd::string&exclude_this_directory){usingnamespaceboost::filesy

c++ - 带有 c++17 的 `filesystem` 在我的 mac os x high sierra 上不起作用

我正在学习本教程:http://www.bfilipek.com/2017/08/cpp17-details-filesystem.htmlcheckout新的c++filesystem功能。但是我无法在我的机器上编译最小的例子:#include#include#includenamespacefs=std::filesystem;intmain(){std::stringpath="/";for(auto&p:fs::directory_iterator(path))std::cout我在尝试编译时使用了XCode、CLion和命令行,但没有任何效果,我的9.3(9E145)版本带有

c++ - Boost.Filesystem 如何找出您的可执行文件在哪个目录中?

所以我运行我的应用程序。我需要它知道它的可执行文件在哪里。如何使用Boost.Filesystem找到它的路径? 最佳答案 boost::filesystem::system_complete(argv[0]);例如[davka@bagvappDebug]$./boostfstest/home/davka/workspaces/v1.1-POC/boostfstest/Debug/boostfstest请注意,这会为您提供完整路径包括可执行文件名。 关于c++-Boost.Filesys

c++ - 使用 Boost.Filesystem 获取平台的路径分隔符

有没有办法使用Boost.Filesystem获取平台的路径分隔符??路径分隔符是指Unix的/和Windows的\。我已经知道我可以使用boost::filesystem::path::operator/将两条路径与适当的分隔符连接在一起。但我只想要/或\。我也知道我可以使用#ifdef_WIN32,但我希望Boost.Filesystem告诉我适当的分隔符。编辑:我想使用version3Boost.FilesystemAPI,在Boost1.48中使用。 最佳答案 从1.57版本开始,Boost现在有了更好的解决方案,即常量ch

c++ - 使用 filesystem::path,如何以跨平台方式打开文件?

假设您使用了新的std::filesystem(或std::experimental::filesystem)代码来查找文件。您有一个path变量,其中包含该变量的完整路径名。你如何打开那个文件?这听起来可能很愚蠢,但考虑一下显而易见的答案:std::filesystem::pathmy_path=...;std::ifstreamstream(my_path.c_str(),std::ios::binary);这不是保证有效的。为什么?因为例如在Windows上,path::string_type是std::wstring。所以path::c_str将返回一个constwchar_t

node.js - 通过 NodeJS 服务器从 Amazon S3 传递文件而不暴露 S3 URL?

我正在尝试将S3文件存储集成到我的NodeJS应用程序中。Thistutorial解释如何将直接上传到S3非常好,但它不适合我的需要,因为我希望这些文件只能通过我的网络应用程序的API访问。我不希望这些文件在他们的S3URL上公开可用,我只希望它们可以通过例如/api/files///获得。.我希望downloads通过我的API的原因是我可以检查是否允许用户查看此特定文件。我希望上传通过我的服务器的原因是我知道哪个分配文件名,因为这将与其MongoDB_id相同属性(property)。如果在项目具有Mongo_id之前将文件上传到S3,我将无法执行此操作首先。我已经看过但找不到关于