Kích thước tệp tối đa trên nền tảng Windows


5

Theo trang wikipedia này , kích thước của một tệp riêng lẻ trên Win10 có thể lên tới khoảng 8 PB với NTFS. Tuy nhiên, Stat Stat được định nghĩa là

struct stat
{
    _dev_t         st_dev;
    _ino_t         st_ino;
    unsigned short st_mode;
    short          st_nlink;
    short          st_uid;
    short          st_gid;
    _dev_t         st_rdev;
    _off_t         st_size;
    time_t         st_atime;
    time_t         st_mtime;
    time_t         st_ctime;
};

trong đó off_t là loại được định nghĩa là dài. Điều đó có nghĩa là giới hạn khoảng 4 GB. Theo trang stackoverflow này , ngay cả đối với HĐH 32 bit, kích thước của tệp có thể lớn hơn nó.

Trừ khi tôi đã nhầm lẫn một cái gì đó, làm thế nào người ta có thể sử dụng struct stat để có được kích thước của tệp một cách đáng tin cậy. Hơn nữa, điều gì sẽ xảy ra nếu kích thước tệp vượt quá giới hạn của loại dài?

Câu trả lời:


5

Bạn nên sử dụng các phiên bản 64 bit của các chức năng stat .

Cấu trúc __stat64 từ stat.htệp bao gồm:

struct _stat64
{
    _dev_t         st_dev;
    _ino_t         st_ino;
    unsigned short st_mode;
    short          st_nlink;
    short          st_uid;
    short          st_gid;
    _dev_t         st_rdev;
    __int64        st_size;
    __time64_t     st_atime;
    __time64_t     st_mtime;
    __time64_t     st_ctime;
};

Ở đây st_size__int6464 bit chứ không phải 32 bit.


Cảm ơn. Tôi nghĩ rằng __stat64 là dành cho hệ điều hành 64 bit.
John Z. Li

1
Nếu bạn đang sử dụng hệ thống 32 bit, bạn vẫn có thể sử dụng chức năng GetFileSize .
harrymc

Đó chính xác là tôi đang tìm kiếm
John Z. Li
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.