2012-07-05 3 views
5

есть ли способ определить ограничения размера файловой системы для отдельных файлов (например, 4gb на fat 32)?Как определить ограничения на размер файловой системы для отдельных файлов

Он должен работать на ОС Windows, но лучше будет переносное решение. Обнаружение типа файловой системы может работать, но я не знаю, как вы можете это сделать.

Может ли кто-нибудь помочь мне здесь?

Спасибо заранее Tobias

+0

Я могу, конечно, думать о непереносимых способах запрашивая * имя * файловой системы на Windows, но я не думаю, что правильно удовлетворяет ваш запрос ... – reuben

+0

На данный момент это, вероятно, решит мою проблему, но это оставило бы меня с неловким чувством «уродливого» решения этой проблемы. Тем не менее, если нет другого пути, это не поможет. –

+1

... но, к счастью, вам, по крайней мере, ищут лучший, более чистый вариант. Многие разработчики не будут делать то же самое ... – reuben

ответ

3

Вы можете определить тип файловой системы на Windows, с GetVolumeInformation

+1

... или через WMI, если это необходимо. Вам нужно жестко закодировать знания общедоступных файловых систем (например, NTFS, FAT, FAT32, EXFAT, CDFS, UDF и т. Д.). – reuben

+0

@ruben: Да, но после просмотра http://msdn.microsoft.com/en-us/library/windows/desktop/aa364407%28v=vs.85%29.aspx Я действительно не вижу лучшего способа. Возможно, набор IFS знает больше кодов IOCTL, которые могут помочь, хотя ... – Anders

0

Вы можете получить общие ограничения на емкости через boost::space(), или непосредственно использовать POSIX fstatvs().

Что касается ограничений на размер отдельных файлов ... единственный переносимый ответ, который приходит на ум, - это уродливая грубая сила, которая пытается создать большие и большие файлы-до-неудачи, дорогостоящие, поскольку это (и невозможно, если емкость уже ограничена).

+1

Это может обеспечить объем свободного пространства, но не обязательно какие-либо внутренние пределы реализации файловой системы ... – reuben

+0

Довольно. Я немного смущен, когда присущие им ограничения могут представлять интерес, а не способность. –

+0

Рассмотрите файловую систему, которая имеет более 4 ГБ свободного места, но все же не позволяет создавать файлы размером более 4 ГБ. Это может быть важно, чтобы понять фронт, прежде чем вы попытаетесь создать любой такой файл ... – reuben

Смежные вопросы