我想检查一个字符串表示文件的完整路径,这样一个正确的文件路径:Matlab的:检查是否字符串有语法
p = 'C:\my\custom\path.txt'
该文件不存在,所以像isdir
命令和exist
返回false给我,但还是字符串的格式代表了我的操作系统有效的路径,而下面的一个没有,因为它的文件名无效字符:
p = 'C:\my\custom\:path.txt'
所以我喜欢知道如何检查一个字符串是否代表av alid文件路径而不需要该文件实际存在。
我想检查一个字符串表示文件的完整路径,这样一个正确的文件路径:Matlab的:检查是否字符串有语法
p = 'C:\my\custom\path.txt'
该文件不存在,所以像isdir
命令和exist
返回false给我,但还是字符串的格式代表了我的操作系统有效的路径,而下面的一个没有,因为它的文件名无效字符:
p = 'C:\my\custom\:path.txt'
所以我喜欢知道如何检查一个字符串是否代表av alid文件路径而不需要该文件实际存在。
您可能想使用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
您也可以让Matlab的尝试为您提供:
if ~isdir(p)
[status, msg] = mkdir(p);
if status
isdir(p)
rmdir(p)
else
error(msg)
end
end
首先,你检查,如果该文件夹存在,如果你不尝试创建它。如果你成功,那么你删除它,如果没有,你会抛出一个错误。
这不建议检查许多字符串,但有跨平台的优势。
好的谢谢。它不是跨平台的,但如果需要的话,它可以很容易地适应其他系统。 – Jepessen
是的,我看到你提供的路径是Windows的路径,所以我认为你只会对Windows解决方案感兴趣。相同的链接对于UNIX/Linux路径有一个答案,这些路径比较松散。任何不是/或NUL的文件都可以显示为文件名/目录名,尽管文件系统在它接受的路径中也有一些说法。 –
是的,我必须为特定的操作系统编写路径才能显示某些内容,但在我的文章中,我讨论了操作系统而不是Windows。无论如何是一个很好的解决方案,它会解决我的问题。 – Jepessen