Are Extended-Length Paths safe to use?

前端 未结 3 774
故里飘歌
故里飘歌 2021-01-14 11:03

I just stumbled on this article on MSDN that says a path can be 259 characters + NUL termination, but if you prefix it with \"\\\\?\\\" WinAPI allows you to use the

相关标签:
3条回答
  • 2021-01-14 11:31

    Are you asking why all components in Windows do not support it, or are you asking whether it's legal to use these long paths?

    You can definitely safely use them, but you may irritate someone who wants to use tools like Explorer to browse them. We see paths like this all the time in the wild. Sometimes people are pretty surprised when they can't use MY_FAVORITE_TOOL to delete it...

    0 讨论(0)
  • 2021-01-14 11:34

    There is a SET of API calls that are work with extened-paths and some that do not. The MSDN usually mentions this.

    Not that if you just type that path into windows explorerunder xp this does not work, because the extened path syntax is just an escape sequence for the WIn32 API and not for windows explorer. Now, In Win7 this does work because many people expected this to work.

    Also for long paths, it does help if you change the working directory or open up explorer with a sub-directory as a root.

    0 讨论(0)
  • 2021-01-14 11:39

    Before someone tells me to RTFM...

    Note that these examples are intended for use with the Windows API functions and do not all necessarily work with Windows shell applications such as Windows Explorer.
    [...]
    For file I/O, the "\\?\" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system. For example, if the file system supports large paths and file names, you can exceed the MAX_PATH limits that are otherwise enforced by the Windows APIs.

    On a secondary note, this makes me wonder about the possibilities of hiding files (or finding such files) from explorer by using illegal file names.

    0 讨论(0)
提交回复
热议问题