gpt4 book ai didi

c++ - 在没有读取权限的情况下返回大小文件c++

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:47 24 4
gpt4 key购买 nike

我正在使用这段代码

long filesize (const char * filename)
{
ifstream file (filename, ios::in|ios::binary);
file.seekg (0, ios::end);
return file.tellg();
}

为了以字节为单位返回文件的大小。但是,我在没有读取权限的情况下提交文件会导致返回 -1。有没有什么方法可以使用 c++ 或 c 返回文件和目录的大小,即使在没有读取权限的情况下也可以在文件上工作?我一直在寻找一段时间,但未能找到可靠的解决方案。

最佳答案

当前的c++标准库不提供从文件系统查询文件大小的可能性。

以后c++17发布的时候,c++标准库会有an API for basic file system operations .使用该 API,这不应该需要对文件的读取权限(当然,您确实需要路径中所有父目录的权限),但我认为该标准不提供任何关于不需要权限的保证:

return std::filesystem::file_size(filename);

在您的标准库支持即将推出的标准之前(一些标准库已经对 experimental/filesystem technical specification 提供了实验性支持),您将需要求助于 OS specific APIa non-standard wrapper library .

关于c++ - 在没有读取权限的情况下返回大小文件c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37665412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com