כיצד למצוא את גודל הקובץ בתכנות C

Kyzd Lmzw T Gwdl Hqwbz Btknwt C



האם אתה חדש בתכנות C ומחפש דרך למצוא את גודל הקובץ? לשום מקום אחר! במדריך זה תלמדו את תהליך מציאת גודל הקובץ בתכנות C. מספר הבתים המשמשים כדי להחזיק את הנתונים בתוך קובץ מכונה גודל הקובץ. על ידי ידיעת גודל הקובץ, תוכל לבצע פעולות שונות לטיפול בקבצים, כולל העתקה, קריאה או כתיבה.

באמצעות ההנחיות שלב אחר שלב המוזכרות במדריך זה ודוגמאות קוד פשוטות, תוכל למצוא במהירות את הגודל של כל קובץ.







מצא את גודל הקובץ בתכנות C

ישנן דרכים שונות למצוא את גודל הקובץ ב-C המוזכר להלן.



1: שימוש בפונקציה stat()

ב-C, השיטה הפשוטה ביותר לגלות את גודל הקובץ היא להשתמש ב- stat() פונקציית קריאת מערכת. ה stat() הפונקציה מאחזרת מידע על מצב הקובץ ומאחסנת אותו במבנה. אחד החברים במבנה זה הוא st_size , שנותן את גודל הקובץ בבתים. שיטה זו מונעת צורך להזיז ידנית את מצביע הקובץ, מה שהופך אותו קל יותר לשימוש ונוטה פחות לשגיאות.



#include
#include

int main ( )
{
מבנה סטט רחוב;
ארוך גודל ;
אם ( סטט ( 'C_File.txt' , & רחוב ) == 0 )
{
גודל = st.st_size;
printf ( 'גודל הקובץ הוא %ld בתים. \n ' , גודל ) ;
}
לַחֲזוֹר 0 ;
}


קוד זה מאחזר את הגודל של קובץ שנקרא C_File.txt משתמש ב stat() שיטה מה סִפְרִיָה. ה st_size אלמנט של struct stat, שבו הפונקציה שומרת את המידע על הקובץ, ומאפשרת לנו למצוא את גודל הקובץ. גודל הקובץ נשמר בגודל המשתנה, ולאחר מכן printf() משמש להדפסת הגודל לקונסולה יחד עם הודעה. לפני ניסיון לגשת ל- st_size מאפיין, הצהרת if מאמתת שה stat() שיחת הפונקציה הצליחה. לאחר מכן הקוד מחזיר 0 כדי להראות שהוא פעל בהצלחה.





תְפוּקָה


2: שימוש בפונקציה fstat()

פונקציה נוספת דומה ל stat() האם ה fstat() פונקציה, שהיא מקבילה ל stat() אבל עובד על קובץ פתוח במקום שם קובץ. ה fstat() הפונקציה מאחזרת מידע על הקובץ הפתוח המתואר על ידי מתאר קובץ עבר אליו. הפניה לקובץ פתוח מיוצגת על ידי המספר השלם מתאר קובץ . דומה ל stat(), fstat() מחזירה את פרטי המצב לגבי הקובץ שסופק, כולל גודלו בבתים.



#include
#include
#include

int main ( ) {
int fd;
מבנה סטט רחוב;
fd = פתוח ( 'C_File.txt' , O_RDONLY ) ;
אם ( מדינה ( fd, & רחוב ) == - 1 ) {
printf ( 'שגיאה בקבלת מידע על הקובץ. \n ' ) ;
לַחֲזוֹר 1 ;
}
printf ( 'גודל הקובץ הוא %ld בתים. \n ' , st.st_size ) ;
סגור ( fd ) ;
לַחֲזוֹר 0 ;
}


בקוד שלמעלה, הקובץ נפתח בתחילה בדוגמה זו על ידי קריאה ל- לִפְתוֹחַ() פונקציה עם שם הקובץ וה- O_RDONLY אפשרות, שפותחת את הקובץ במצב קריאה בלבד. א מתאר קובץ (fd) מוחזר על ידי הפונקציה. לאחר מכן, אנו משתמשים ב- fstat() שיטה להשיג מידע על הקובץ, שליחתו כמצביע ל- רחוב מבנה כפרמטר השני ומתאר הקובץ כארגומנט הראשון. ה רחוב המבנה הוא המקום שבו פונקציה זו שומרת את המידע של הקובץ לאחר אחזורו.

גודל הקובץ בבתים, שנשמר ב- st_size חבר ב רחוב מבנה, מודפס אם לא הייתה שגיאה בזמן השימוש ב- fstat() פוּנקצִיָה. אחרת, הוא מדפיס הודעת שגיאה.

תְפוּקָה


3: שימוש בפונקציות fseek() ו-ftell().

שיטה נוספת למצוא את גודל הקובץ בתכנות C היא להשתמש ב- fseek() ו ftell() פונקציות. ה ftell() השיטה מחזירה את המיקום הנוכחי של מצביע הקובץ, בעוד שהפונקציה fseek() מזיזה את מצביע הקובץ למקום נתון בקובץ. ניתן למצוא את גודל הקובץ בבתים באמצעות ה- ftell() פונקציה לרכישת המיקום הנוכחי לאחר השימוש ב- fseek() פונקציה כדי להעביר את מצביע הקובץ לסוף הקובץ.

#include
#include

int main ( )
{
קוֹבֶץ * fp;
ארוך גודל ;

fp = fopen ( 'C_File.txt' , 'רב' ) ;
fseek ( fp, 0L, SEEK_END ) ;
גודל = ftell ( fp ) ;
לסגור ( fp ) ;
printf ( 'גודל הקובץ = %ld בתים. \n ' , גודל ) ;

לַחֲזוֹר 0 ;
}


בקוד לעיל, השתמש ב- fopen() השיטה, האפליקציה פותחת תחילה את C_File.txt במצב בינארי. ה fseek() לאחר מכן הפונקציה משתמשת ב- SEEK_END אפשרות להעביר את מצביע הקובץ לקצה הקובץ. ניתן למצוא את המיקום הנוכחי של הקובץ, התואם לגודלו בבתים, באמצעות ה- ftell() פוּנקצִיָה. לאחר מכן הקוד משתמש ב- fclose() שיטה לסגירת הקובץ לאחר הדפסת גודל הקובץ למסוף.

תְפוּקָה


4: שימוש בפונקציה filelength()

השיטה הבאה היא באמצעות ספריית ניהול הקבצים, המספקת פונקציות רבות של מניפולציה של קבצים, כולל פונקציות להשגת בגודל של קובץ . למשל, הפונקציה filelength() מחזירה את אורך הקובץ בבתים, בהינתן שם הקובץ שלו. פונקציה זו דורשת את קובץ הכותרת .

יש גם פונקציה נוספת, _filelengthi64(), שמחזירה את אורך הקובץ בבתים, עבור קבצים גדולים מ-4 GB. ההבדל בין שתי הפונקציות הוא סוג ערכי ההחזר שלהן, שמראה כמה בתים הפונקציה יכולה להתמודד.

#include
#include

int main ( )
{
ארוך גודל ;
לְהַשְׁחִיר * fname = 'C_File.txt' ;
גודל = אורך הקובץ ( fileno ( fopen ( fname, 'רב' ) ) ) ;
printf ( 'גודל הקובץ = %ld בתים. \n ' , גודל ) ;

לַחֲזוֹר 0 ;
}


גודל הקובץ C_File.txt בבתים מתקבל על ידי קוד זה באמצעות ספריית ניהול הקבצים של Windows. כאשר מסופק מתאר הקובץ של קובץ שנפתח, השיטה filelength() מחזירה את אורך הקובץ בבתים.

fopen() פותח את הקובץ במצב בינארי לקריאה בלבד בקוד זה, ו fileno() מחזירה את מתאר הקובץ של הקובץ שנפתח. לאחר מכן, printf() משמש להדפסת גודל הקובץ. לאחר מכן הפונקציה מחזירה 0 מה שמציין שהיא בוצעה בהצלחה.

תְפוּקָה


סיכום

ישנן מספר שיטות למצוא את גודל קובץ בבתים ב-C , לכל אחד יתרונות וחסרונות משלו. ארבע שיטות שונות נדונות במדריך לעיל; stat() פוּנקצִיָה, fstat() פוּנקצִיָה, fseek() ו ftell() פונקציות, ואת filelength() פוּנקצִיָה. הבנת הפונקציות הללו תעזור למשתמשים למצוא את הגודל של כל קובץ במערכת שלך.