使用matlab / octave fopen创建名称仅与现有文件大小写不同的新文件

时间:2016-12-22 23:50:55

标签: matlab file octave fopen

是否可以在MATLAB或Octave中使用fopen创建一个名称仅与现有文件大小写不同的文件?在MacOS 10.11.6上的MATLAB R2016a和Octave 4.2.0中,以下代码仅创建FooBar.txt并向其写入bar(未创建foobar.txt):

fid = fopen('FooBar.txt', 'w');
fwrite(fid, 'foo', 'char');
fclose(fid);
fid = fopen('foobar.txt', 'w');
fwrite(fid, 'bar', 'char');
fclose(fid);

1 个答案:

答案 0 :(得分:2)

MATLAB可以做到这一点,但仅限于Linux。默认情况下,Windows和MacOS不尊重大小写。

NTFS和FAT(和变体)是case sensitive(对于POSIX兼容性),但Windows内核不尊重大小写。这意味着,原则上NTFS可以保存两个文件,其名称仅在大小写上有所不同,但Windows不能创建或区分这些文件,除非您在比大多数程序中常见的更低级别进行系统调用(读取:“黑客“)。

MacOS上的HFS +臭名昭着is case-insensitive。这意味着,虽然MacOS内核原则上可以处理它,但文件系统却不能。目前在MacOS Sierra(10.12),the experimental APFS is case sensitive中使用,但我相信系统范围内对它的支持被禁用(...虽然我在这里可能是错的)。虽然it can be enabled,但我认为区分大小写与Apple的设计理念不一致(此外,许多应用程序明确假设 敏感度并且如果发生变化则会破坏),所以我认为它很可能对案例敏感性的支持将在未来版本中逐渐增加。