C++ 如何检测单个文件的文件系统大小限制

C++ 如何检测单个文件的文件系统大小限制,c++,filesystems,C++,Filesystems,是否有办法检测单个文件的文件系统大小限制(例如FAT32上的4gb) 它必须在Windows操作系统上工作,但最好是一个可移植的解决方案。检测文件系统类型可能是一个解决办法,但我也不知道如何才能做到这一点 有人能帮我吗 先谢谢你 Tobias您可以通过或直接使用POSIX获得总容量限制 至于对单个文件大小的限制。。。脑海中浮现的唯一可移植的答案是丑陋的暴力尝试创建越来越大的文件,直到失败,尽管代价很高(如果容量已经有限,这是不可能的) 您可以使用检测Windows上的文件系统类型,该类型可能会提

是否有办法检测单个文件的文件系统大小限制(例如FAT32上的4gb)

它必须在Windows操作系统上工作,但最好是一个可移植的解决方案。检测文件系统类型可能是一个解决办法,但我也不知道如何才能做到这一点

有人能帮我吗

先谢谢你
Tobias

您可以通过或直接使用POSIX获得总容量限制


至于对单个文件大小的限制。。。脑海中浮现的唯一可移植的答案是丑陋的暴力尝试创建越来越大的文件,直到失败,尽管代价很高(如果容量已经有限,这是不可能的)

您可以使用

检测Windows上的文件系统类型,该类型可能会提供足够的可用空间,但不一定是文件系统的任何固有实现限制。我有点困惑,当固有的Adress限制将是有兴趣的,而不是容量,但是,考虑一个文件系统,有超过4 GB的自由空间,但仍然不允许创建大于4 GB的文件。在您尝试创建任何此类文件之前,预先了解这一点可能很重要……好的:单个文件的大小限制。是的,这很有趣。是的,确实如此。您创建了一个文件,用户可以选择停止录制。所以你不知道用户希望它有多大。至少在你达到极限之前优雅地停下来会很好。我当然可以想到在Windows上查询文件系统名称的不可移植的方法,但我认为这不能完全满足你的要求……这可能会暂时解决我的问题——但这会让我有一种“丑陋”的不安感觉这个问题的解决方案。尽管如此,如果没有其他办法,也没办法……但至少为你找到了一个更好、更干净的选择,你感到很荣幸。许多开发人员不会做同样的事情……或者通过WMI,如果需要的话。不过,您需要硬编码一般支持的文件系统的知识(例如NTFS、FAT、FAT32、EXFAT、CDFS、UDF等)。@ruben:是的,但在查看之后,我真的没有找到更好的方法。也许IFS工具包知道更多的IOCTL代码可能会有所帮助。。。