从隐藏目录读取没有文件扩展名的文件

从隐藏目录读取没有文件扩展名的文件

我正在尝试从文件中读取一些数据并使用以下方法:

\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 进行测试。)

相关内容