0

如果我运行下面的示例代码,我会在 Matlab 中得到一个无效的文件标识符错误:

for i = 1:99999
    fid = fopen('test.txt','w');
    fprintf(fid,'%s', 'Hello World!\r\n');
    fclose(fid);
    delete('test.txt');
end;

???使用 ==> fprintf 时出错 文件标识符无效。使用 fopen 生成有效的文件标识符。

有趣的是,如果我减少循环次数,我不会得到错误。我研究了这个问题,似乎没有一个导致错误的常见问题(错误的文件路径、损坏的文件、文件不存在、文件已在使用中)是罪魁祸首,因为如果我将循环更改为10 而不是 99999。

经过进一步研究,Matlab Forum Post,似乎问题可能与配额有关(我认为配额与操作系统有关,在我的情况下,Windows 10 不允许程序在一定数量的文件之后写入文件是由同一个程序编写的吗?)。

如何增加配额?有解决办法吗?我在 Windows 10 上使用 Matlab 2010a。

我也尝试在管理员模式下运行 Matlab,但没有成功。

4

1 回答 1

1

我假设权限是正确的并且磁盘空间不是问题,但是您仍然应该检查 fopen 的输出以获取更多信息或一些调用 ferror(fid) 以获取其他数据的 try-catch(请注意显然没有分号) .

[fid,msg]=fopen('test.txt','w')

如果它与配额相关,您应该能够在硬盘驱动器的属性中禁用它,如下图所示(它是西班牙语,但您应该明白)。只需右键单击该单元并访问属性->磁盘配额->显示配置,如果还没有,请禁用它。

磁盘配额的 GUI 位置

于 2016-03-14T13:27:43.257 回答