![从隐藏目录读取没有文件扩展名的文件](https://linux22.com/image/273603/%E4%BB%8E%E9%9A%90%E8%97%8F%E7%9B%AE%E5%BD%95%E8%AF%BB%E5%8F%96%E6%B2%A1%E6%9C%89%E6%96%87%E4%BB%B6%E6%89%A9%E5%B1%95%E5%90%8D%E7%9A%84%E6%96%87%E4%BB%B6.png)
我正在尝试从文件中读取一些数据并使用以下方法:
\documentclass{minimal}
\newcommand{\file}{./.dir/.testFile}
\begin{document}
\newread\myread
\openin\myread=\file\relax
\loop
\read\myread to \data
\unless\ifeof\myread
\data
\repeat
\closein\myread
\end{document}
这适用于以下文件(在\file
宏中指定):
testFile.txt
--> 普通文件dir/testFile.txt
--> 文件夹中的普通文件.dir/testFile.txt
--> 隐藏文件夹中的普通文件.dir/.testFile
--> 隐藏文件夹中的隐藏文件
但正是我需要的情况却不起作用:.dir/testFile
。为什么不能读取没有文件扩展名的文件,有没有办法解决这个问题?重命名文件对我来说不是一个选择,因为该文件是由另一个应用程序使用/修改/创建的。我只需要文件的第一行,如果这能以任何方式简化问题的话。
根据这问题/答案,如果没有指定扩展名,则扩展名.tex
始终会附加到文件名中(即使使用低级命令也是如此)。但我仍然认为一定有办法绕过这个问题。
系统:
- pdfTeX,版本 3.1415926-2.4.1.40.13
- MiKTeX 2.9(修订版 2.9.4533,32 位)
- Windows 7 专业版(64 位)
答案1
我没有 MiKTeX 来测试,但似乎输入的无扩展文件已修复这个错误。
如果\read
没有同时修复,解决方法可能有效:.
在 TeX 调用中将 a 附加到文件名末尾:
\newcommand{\file}{./.dir/testFile.}
%
答案2
如果您使用 LuaTeX,就会出现问题。
问题的根源在于 TeX 会尝试使用.tex
没有扩展名的文件名作为扩展名。因此,LuaTeX 似乎军队如果没有指定扩展名,则扩展名.tex
。(可以生成错误报告。)
不过LuaTeX还支持另外一种指定文件名的语法,类似于\pdfximage
,文件名可以用大括号括起来,这样就能找到正确的文件:
\documentclass{minimal}
\newcommand{\file}{./.dir/testFile}
\begin{document}
\newread\myread
\openin\myread={\file}\relax
\loop
\read\myread to \data
\unless\ifeof\myread
\data
\repeat
\closein\myread
\end{document}
(使用 TeX Live 2013 的 LuaTeX 0.76.0 进行测试。)