Matlab:检查字符串是否具有正确的文件路径语法

时间:2017-08-01 09:16:23

标签: matlab path

我想检查字符串是否代表文件的完整路径,如下所示:

p = 'C:\my\custom\path.txt'

该文件不存在,因此isdirexist之类的命令会向我返回false,但字符串的格式仍然代表我的操作系统的有效路径,而下一个不是因为它的文件名无效:

p = 'C:\my\custom\:path.txt'

所以我想知道如何检查字符串是否代表有效的文件路径,而不需要文件实际存在。

3 个答案:

答案 0 :(得分:3)

您可能希望将regexp功能与regular expression to match Windows paths一起使用。

if isempty(regexp(p, '^(?:[a-zA-Z]\:|\\\\[\w\.]+\\[\w.$]+)\\(?:[\w]+\\)*\w([\w.])+$', 'once'))
   // This is not a path
end

答案 1 :(得分:1)

您也可以让Matlab为您尝试:

if ~isdir(p)
    [status, msg] = mkdir(p);
    if status
        isdir(p)
        rmdir(p)
    else
        error(msg)
    end
end

首先,检查文件夹是否存在,如果不存在,则尝试创建该文件夹。如果你成功,那么你删除它,如果没有,你会抛出错误。

这不建议用于检查许多字符串,但具有跨平台的优势。

答案 2 :(得分:1)

function bool = isLegalPath(str)
    bool = true;
    try
        java.io.File(str).toPath;
    catch
        bool = false;
    end
end