【问题标题】:How to get the path part of a filename?如何获取文件名的路径部分?
【发布时间】:2013-01-06 17:23:48
【问题描述】:

我想在 MATLAB 中获取文件名的路径部分,例如 Linux 中的 dirnamebasename。我试图转向寻找像strrchr 这样的函数,但我失败了。我知道strtokstrfindtextscan 可以使用,但我想用不超过两个语句来完成。

【问题讨论】:

    标签: matlab path filenames


    【解决方案1】:

    对于这个特殊的问题,我建议你使用fileparts 函数:

    [path, filename, extension] = fileparts(str)
    

    【讨论】:

    • 在此上下文中另一个有用的 matlab 命令是 fullfile,它允许以跨平台的方式将文件夹名称连接到路径。
    【解决方案2】:

    Nick 的回答绝对符合您的要求,但这里有一个使用 regexprep 的替代答案:

    regexprep(str, '(.+)(?:\\|/)(.*)', '$1')
    

    如果您想捕获文件名(包括扩展名),请使用$2 令牌而不是$1。 这是一个很好的正则表达式练习,在 MATLAB 中解析文本时被证明是非常有用的。

    【讨论】:

    • Linux 上的路径呢?
    • 为什么有人更喜欢这种方法而不是@Nick 提出的方法?
    • @HighPerformanceMark 没有特别的原因。对于正在寻找一种以更高级方式“标记”路径字符串并偶然发现这个问题的其他用户来说,它可能会被证明是有用的。
    • 为什么不使用filesep
    • 这很棒,因为它也适用于字符串单元格!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2015-11-26
    • 2021-06-17
    相关资源
    最近更新 更多