c++ - 文件夹路径序列化的最大字符长度

标签 c++

我在 stackoverflow 上搜索答案,但找不到相近的答案。我正在序列化驱动器的内容。我正在使用 boost::filesystem::path 进行操作。在 Windows 操作系统中存储路径信息的最大字符长度应该是多少(300 只是标称值)。

struct raw_event 
{   
    friend std::ifstream& operator >> (std::ifstream& infile, raw_event& raw);
    friend std::ofstream& operator << (std::ofstream& outfile, raw_event& raw);
private:

        char path_[300];
       //
 };

最佳答案

Windows 最大路径为 260,除非您使用的是 Unicode API。然后是32767。Source MSDN不确定 Boost 使用什么,但您不想总是存储 32k 只是为了确定。有时会从轨道上对该站点进行核打击。这不是其中之一。

为了做一个可变长度的字符串,我通常采用 Pascal 风格并将字符串的长度写入文件然后写入字符串,但那是针对二进制文件的。对于文本文件,如 operator<< 所建议的那样在问题中,您最好使用引号和 std::getline 等分隔符.

关于c++ - 文件夹路径序列化的最大字符长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39970328/

相关文章:

c++ - 零MQ/ZMQPP : Forward metadata with message

c++ - 当我将一个类声明为其他类的成员时出现错误。错误 : a class-key must be used when declaring a friend

c++ - 使用 NULL 值初始化内存块是否等同于 free?

c++ - 访问类外的变量

c++ - 禁用 boost 的 `progress_display` 输出

c++ - 在线程中运行递归合并排序方法时发生 EXC_BAD_ACCESS 错误

c++ -//! [0] 在 Qt 源代码中

C++ FFmpeg 刷新后如何继续编码?

c++ - 指针正在以某种方式失效,这会导致访问冲突

c++ - 使用 -O3 编译时将函数标记为内联?