我可以从PHP获取文件的短DOS名称吗?

时间:2009-06-16 22:30:05

标签: php dos

我想将文件路径作为参数传递给PHP中的可执行文件,文件路径可能包含空格。可执行文件似乎没有处理参数周围的引号,所以我想也许我可以传递短DOS名称而不是长名称。

PHP是否了解旧式DOS 8.3文件名?

4 个答案:

答案 0 :(得分:4)

php / win32附带COM/.net extension built-in。您可以使用它来创建WSH FileSystemObject,然后查询ShortPath propertyFile object

<?php
$objFSO = new COM("Scripting.FileSystemObject");
$objFile = $objFSO->GetFile(FILE);
echo "path: ", $objFile->Path, "\nshort path: ", $objFile->ShortPath;
打印例如。
path: C:\Dokumente und Einstellungen\Volker\Desktop\test.php
short path: C:\DOKUME~1\Volker\Desktop\test.php

答案 1 :(得分:1)

您可能需要查看escapeshellarg()并将参数放在双引号之间。

答案 2 :(得分:1)

您希望Windows上的Kernel32中有GetShortPathName API。要从PHP调用它,您需要使用Win32 API extension ...

答案 3 :(得分:0)

如何反击空间?

Home/My Documents/  --> Home/My\ Documents/