如何获取文件名的路径部分?

5

我希望在MATLAB中获取文件名的路径部分,就像Linux中的dirnamebasename一样。我尝试查找类似于strrchr的函数,但失败了。我知道可以使用strtokstrfindtextscan,但我想用不超过两个语句来完成这个任务。

2个回答

8

针对这个问题,我建议您使用fileparts函数:

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

4
在这种情况下,另一个有用的MATLAB命令是fullfile,它允许以跨平台的方式连接文件夹名称和路径。 - Shai

3

Nick的答案确实能够满足你的要求,但这里有一种使用regexprep的替代方案:

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

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

1
Linux 上的路径怎么样? - Shai
4
为什么任何人都应该更喜欢这种方法而不是@Nick提出的那种方法? - High Performance Mark
1
@HighPerformanceMark 没有特别的原因。这可能对其他正在寻找更高级路径字符串“标记化”方法的用户有用,并偶然发现了这个问题。 - Eitan T
2
为什么不使用 filesep - Shai
2
太好了,因为它也适用于字符串单元格! - mrtubis
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接