2012-07-05 44 views
5

có cách nào để phát hiện giới hạn kích thước tệp hệ thống của các tệp riêng lẻ (ví dụ: 4GB trên chất béo 32) không?Cách phát hiện giới hạn kích thước tệp hệ thống của các tệp riêng lẻ

Nó phải hoạt động trên hệ điều hành Windows, nhưng tốt hơn sẽ là một giải pháp di động. Phát hiện loại hệ thống tập tin có thể là một công việc xung quanh, nhưng tôi không biết làm thế nào bạn có thể làm điều đó một trong hai.

Ai có thể giúp tôi ở đây không?

Cảm ơn bạn trước Tobias

+0

tôi chắc chắn có thể nghĩ ra cách phi di động của truy vấn * Tên * của hệ thống tập tin trên Windows, nhưng tôi không nghĩ rằng đúng thỏa mãn yêu cầu của bạn ... – reuben

+0

Nó có lẽ sẽ giải quyết vấn đề của tôi bây giờ - nhưng nó sẽ khiến tôi cảm thấy khó chịu khi có một giải pháp "xấu xí" cho vấn đề này. Tuy nhiên nếu không có cách nào khác, nó không thể được giúp đỡ. –

+1

... nhưng kudos cho bạn ít nhất là tìm ra một lựa chọn tốt hơn, sạch hơn. Nhiều nhà phát triển sẽ không làm như vậy ... – reuben

Trả lời

3

Bạn có thể phát hiện các loại hệ thống tập tin trên Windows với GetVolumeInformation

+1

... hoặc thông qua WMI, nếu muốn. Tuy nhiên, bạn sẽ cần phải có kiến ​​thức mã hóa cứng về các hệ thống tệp được hỗ trợ chung (ví dụ: NTFS, FAT, FAT32, EXFAT, CDFS, UDF, v.v.). – reuben

+0

@ruben: Có nhưng sau khi xem http://msdn.microsoft.com/en-us/library/windows/desktop/aa364407%28v=vs.85%29.aspx Tôi không thực sự thấy một cách tốt hơn. Có lẽ bộ IFS biết nhiều mã IOCTL hơn có thể giúp ... – Anders

0

Bạn có thể nhận tổng hạn chế năng lực thông qua boost::space(), hoặc trực tiếp sử dụng POSIX fstatvs().

Đối với các giới hạn về kích thước của các tệp riêng lẻ ... câu trả lời di động duy nhất ghi nhớ là sức mạnh bạo lực xấu xí cố gắng tạo ra lớn hơn và lớn hơn-cho đến khi thất bại, tốn kém vì nó là (và không thể nếu năng lực đã bị giới hạn).

+1

Điều đó có thể cung cấp dung lượng trống, nhưng không nhất thiết phải có bất kỳ giới hạn triển khai vốn có nào của hệ thống tệp ... – reuben

+0

Khá. Tôi là một chút bối rối như khi giới hạn địa vị cố hữu sẽ được quan tâm, chứ không phải là khả năng, mặc dù. –

+0

Hãy xem xét hệ thống tệp có hơn 4 GB dung lượng trống nhưng vẫn không cho phép tạo tệp lớn hơn 4 GB. Điều này có thể quan trọng để hiểu trước, trước khi bạn cố gắng tạo bất kỳ tệp nào như vậy ... – reuben

Các vấn đề liên quan