QDir和无效的目录名称

时间:2011-04-28 12:01:41

标签: qt

使用以下代码我可以创建名为“....;。a”的目录,但这些名称在Window系统上无效。

QDir dir(some_folder());
QString invalid_folder = "....;.a";
bool ret = dir.mkdir(invalid_folder);

2 个答案:

答案 0 :(得分:2)

Windows“支持”(并允许您使用资源管理器创建)的目录名称与文件系统实际支持的目录名称之间存在差异。

例如,如果您尝试创建以.开头的名称,则Explorer不会允许此操作;但是你可以以编程方式创建这样的名称,许多程序都会这样做(特别是那些也运行在* nix变种上的程序)。

答案 1 :(得分:1)

您可以使用不是以下字符的文件名:

  < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)

Integer value zero, sometimes referred to as the ASCII NUL character.
Characters whose integer representations are in the range from 1 through 31, except for alternate data streams where these characters are allowed. For more information about file streams, see File Streams.

目标文件系统不允许的任何其他字符。

您可以找到更多信息:here