用于序列化文件夹路径的最大字符长度

时间:2016-10-11 04:01:41

标签: c++

我在stackoverflow中搜索答案,但无法获得近似匹配。我正在序列化驱动器的内容。我正在使用boost :: filesystem :: path进行操作。在Windows OS中存储路径信息的最大值(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];
       //
 };

1 个答案:

答案 0 :(得分:2)

Windows最大路径为260,除非您使用Unicode API。然后它是32767. Source MSDN不确定Boost使用什么,但你不想总是存储32k只是为了确定。有时候从轨道上钻取这个网站。这不是其中之一。

要做一个可变长度的字符串,我通常会使用Pascal样式并将字符串的长度写入文件然后写入字符串,但这是针对二进制文件的。对于文本文件,如问题中的operator<<所示,您最好使用引号和std::getline之类的分隔符。