替代短路径名称的命令行

时间:2014-04-15 12:31:43

标签: matlab filenames filepath

有一个特定的案例,其中有"带空格的路径"没有工作,我需要获取Windows短路径名称(例如Program Files = Progra~1和Program Files(x86)= Progra~2)。

这就是我现在正在做的事情:

[status, PATHROOT] = dos([ ...
    'for %A in ("' ...
    myPathWithSpace ...
    '") do @echo %~sA' ...
    ]);

现在,我尝试使用regexpregexprep格式化文件路径,但在某些情况下,它无法重现dos短名称。那么如何用MATLAB命令重现dos命令呢?

我的丑陋尝试regexpregexprep

PATHROOT = regexprep(regexprep(regexp(myPathWithSpace,'\w:\\\w*\s\w*\\.*','match'),'\s', ''),'(\w:\\\w{6})\w*','$1~1');

1 个答案:

答案 0 :(得分:1)

使用此功能:

function shortPath = getshortpath(longPath)

fs = actxserver('Scripting.FileSystemObject');

shortPath = fs.GetFolder(longPath).ShortPath;

fs.delete;