当前位置:  开发笔记 > 编程语言 > 正文

在Windows上,何时应该使用"\\\\?\\"文件名前缀?

如何解决《在Windows上,何时应该使用"\\\\?\\"文件名前缀?》经验,为你挑选了2个好方法。

给定一个Unicode文件名,我遇到了用于打开文件的ac库.在打开文件之前,它首先通过前缀"\\?\"将文件名转换为路径.根据这篇msdn文章,除了增加路径中允许的最大字符数之外,还有什么理由可以做到这一点吗?

看起来这些"\\?\"路径需要Windows API和标准库的Unicode版本.



1> xahtep..:

是的,这只是为了这个目的.但是,如果您决定创建超过MAX_PATH长度的路径,则可能会看到兼容性问题.例如,资源管理器shell和命令提示符(至少在XP上,我不知道Vista)无法处理该长度的路径并将返回错误.



2> itsadok..:

此方法的最佳用途可能不是创建新文件,而是管理其他人可能创建的现有文件.

我管理了一个文件服务器,通常会获取文件path_length > MAX_PATH.你看,用户看到的文件是H:\myfile.txt,但实际上是在服务器上H:\users\username\myfile.txt.因此,如果用户在MAX_PATH服务器上创建了具有完全字符的文件,那么它就是MAX_PATH+len("users\username").

(创建具有MAX_PATH字符的文件并不罕见,因为当您在Internet Explorer上保存网页时,它使用页面标题作为文件名,对于某些页面来说可能相当长).

此外,通过Mac或Linux机器共享驱动器(通过网络或USB),您可以找到名称为con,prn或lpt1的文件.同样,前缀允许您和您的脚本处理这些文件.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有