是乳胶(pdflatex)能够读取文件超长文件名在 Windows 上?(最多 32767 个 Unicode 字符)
https://ss64.com/nt/syntax-filenames.html
NTFS 文件系统支持长达 32,767 个 Unicode 字符的大型路径和文件名,通常这受 Windows Win32 API 强制执行的 260 个字符* MAX_PATH 限制。这意味着有时在移动文件和目录或映射驱动器时,可能会创建 Win32 无法处理的过长的路径名。
还有另一种访问非常长的文件名的方法:对于文件 I/O,路径字符串的“\?\”前缀告诉 Windows API 禁用所有字符串解析并将其后面的字符串直接发送到文件系统。
...
由于它关闭了路径字符串的自动扩展,“\?\”前缀还允许在路径名中使用“..”和“.”,如果您尝试使用这些保留的相对路径说明符作为完全限定路径的一部分对文件执行操作,这将非常有用。此语法可在 CMD 和 PowerShell 中使用。
"\\?\UNC\Server64\Teams\Personnel\some - very - long - file - name.txt"
\input{ \\?\extremly_long_file_name } % Will this work?
答案1
我只对少于 260 个字符的路径进行了测试,它似乎有效(Texmaker 5.0.3,在 Windows 7,64 位上)。需要替换所有反斜杠 \
转换为普通斜线/
。它还适用于NTFS 大路径语法:\\?\...
。
\\?\C:\\Users\foo\myfile.txt
只需改变://?/C:/Users/foo/myfile.txt
\documentclass{article}
\usepackage{verbatim}
\begin{document}
\verbatiminput{//?/C:/Users/foo/myfile.txt}
\end{document}