MATLAB 不会删除临时图像

MATLAB won't delete temporary images

我在 MATLAB 中有一个图像分析程序,可以从硬件图像采集卡中抓取图像。它将它们保存到一个临时文件夹(Windows 中的%TEMP%\yymmdd-hhmmss\),分析它们,然后尝试删除它们。但是删除操作总是失败 "The file is in use by another process"。显然 MATLAB 仍然以某种方式打开它们。

我无法使用 fopen('all') 找到任何打开的句柄。我正在使用 imread 来读取图像 - 它是否仍然在某处保留一个打开的句柄?如果是这样,我该如何关闭它?

如果 fclose('all')pack 对您不起作用,请确保没有其他程序(即防病毒程序)正在尝试扫描临时目录。对于我的应用程序,在我的工作目录中创建一个子文件夹避免了访问问题。

我对此进行了一些深入研究。事实证明,图像文件被 MATLAB 函数 GetFileTime, which I was using to set the image's modification time after grabbing. I'm not sure why it locks the file, but I found a different method 锁定,以设置不会导致文件被锁定的文件时间。

(感谢@excaza 让我更好地研究这个问题。那天结束了,我无法解决,所以我就在这里发帖。我很懒!)