检查文件是否存在

3742次浏览(过去30天)
萨尔瓦托雷·马扎里诺
我使用“importdata”函数从文本文件导入数据。我想有一种方法来检查文本文件是否存在之前,试图从文件导入数据。如果文件不存在,那么我想显示一个自定义错误消息。我应该用什么函数?

接受的答案

1月
1月 2012年9月29日
编辑:MathWorks支金宝app持团队 2018年11月9日
从R2017b开始,你可以使用“isfile”函数来检查文件是否存在。例如:
如果isfile(文件名)
%文件存在。
其他的
文件不存在。
终止
“isfile”函数仅搜索指定路径或当前文件夹中的文件。
对于R2017a和以前的版本,使用“exist”功能。例如:
如果存在(文件名,“文件”) == 2
%文件存在。
其他的
文件不存在。
终止
请确保为文件名指定一个绝对路径。“exist”函数搜索搜索路径上的所有文件和文件夹,如果存在多个同名文件,可能会导致意想不到的结果。
5评论
塞西莉亚·梅德林
塞西莉亚·梅德林 2021年7月22日
你好,谢谢你的回复 @Jan ,在我的例子中,我只想知道文件夹中是否存在特定的文件类型,然后将文件夹移动到另一个名为complete的parentfolder。因此,如果文件夹AAA包含.txt和.jpgs,我想将AAA移动到包含文件夹AAZ、BBA等的完整文件夹中,该文件夹也包含.txt和.jpg文件。我附上了源文件的图片。我想把像00000715这样的文件移到文件夹中。非常感谢。

登录以发表评论。

更多的答案(5)

图像分析
图像分析 2012年9月29日
如果存在(完整文件名,“文件”)
%文件已存在。请执行以下操作。。。。
其他的
文件不存在。
warningMessage = sprintf ('警告:文件不存在:\n%s', fullFileName);
uiwait(对话框(warningMessage));
终止
3评论
图像分析
图像分析 2016年3月4日
它检查是否有一个具有该文件名的文件。它不检查 什么 内容是,或者即使有内容。可以有一个零字节的文件。你可以使用fileInfo = dir(filename)来检查大小。

登录以发表评论。


阿兹·阿卜杜勒马莱克
编辑:阿兹·阿卜杜勒马莱克 2012年9月29日
a=dir%或a=dir('文件夹')
b = struct2cell (a)
任何(ismember (b (1:)“filename.txt”))
2评论
1月
1月 2019年5月6日
但是如果当前目录包含大量的文件,那就是浪费时间。如果当前文件夹在网络驱动器中,速度会非常慢。这样更有效率:
isfile (fullfile (cd,“filename.txt”))
如果未知,如果文件是否包含路径,请使用 //www.tatmou.com/matlabcentral/fileexchange/28249-getfullpath

登录以发表评论。


何塞-路易斯
何塞-路易斯 2012年9月29日
编辑:何塞-路易斯 2012年9月29日
医生存在

西蒙
西蒙 2016年11月2日
编辑:西蒙 2016年11月2日
更现代/更简洁的方法:
断言(存在)(文件名,' == 2, '文件未找到。”);
断言是一件美妙的事情,它使错误捕获代码成为一种错误 很多 比许多if块更紧凑!它的运作方式是,
断言(条件、错误);
其中,condition是返回逻辑true或false的内容,error是在其为false时产生的消息。
2评论
图像分析
图像分析 2016年11月17日
尽管一个更友好更有信息的错误消息(就像我的答案)将是一个改进。
但您并不是完全正确的。正如您所说的“存在(文件名,'file')==2将在文件确实存在时出现。”而存在(文件名,'file')==2将在文件不存在时为FALSE。由于assert仅在文件不存在时(条件为FALSE)才吐出错误消息,因此它是正确的,正如Simon最初所说的,而不是您的“更正”。
总之,记住,如果文件 存在,条件是 真正的 ,并且“找不到文件。”消息为 打印到命令窗口。如果文件有 存在,条件是 错误的 ,则“文件未找到”。”的信息 打印到命令窗口。

登录以发表评论。


阿比K
阿比K 2019年2月4日
有没有一种方法来检查文件存在于一个特定的目录,而不使用文件名,我的意思是说,是更一般化的方法来找出
2评论
图像分析
图像分析 2020年10月11日
如果你 不知道 文件名,您无法确定文件是否存在。你所能做的就是看看 任何 通过使用dir()函数,文件夹中存在文件。

登录以发表评论。

标签

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!