我用什么Perl模块从Windows上的相对路径获取绝对路径(包括文件名)?

rom*_*das 6 perl winapi filenames module absolute-path

我只能想象我没有正确搜索; 这似乎是一个在这里要问的明显问题.如果这是重复,我道歉.

我正在编写一个Perl程序,它将文件名作为命令行参数.我需要将文件名(或附加相对路径的文件名)转换为绝对路径(特别是与Win32 :: OLE一起使用).

我尝试使用Cwd的'abs_path',这几乎可以做我想要的,但它使用Unix风格的路径而不是Win32路径返回它.

是否有一个模块可以转换路径,或者可能是一个更好的模块首先使用?

bri*_*foy 13

我使用rel2abs文件::规格.你必须要小心,虽然:可能叫getdcwdCwd,它会认为你要为当前驱动器的当前工作目录.如果文件位于其他驱动器上,则必须自行修复该文件或提供第二个参数来设置基本路径.

  • 非NT Windows很有趣."D:foo.txt"是驱动器D上当前目录中的foo.txt.它不是驱动器D的*root*,因为路径组件不以[back]斜杠开头.每个进程都为每个驱动器*维护一个当前目录*.这是DOS遗留物,根据Microsoft知识库文章不再适用于基于NT的Windows. (2认同)