Q
文件大小
0
A
回答
2
系統調用stat
是解決此問題的常用方法。或者,在您的具體情況下,fstat
。
0
嘗試使用_filelength。這不是便攜式的,但是...我不認爲有任何完全便攜的方式來做到這一點。
+0
_filelength不適用於文件指針。但是,你總是可以這樣做:size = _filelength(_fileno(fp)); – 2012-09-20 10:31:25
1
沒有理由不工作。
還有別的辦法嗎? 您可以使用統計,如果你知道文件名:
struct stat st;
stat(filename, &st);
size = st.st_size;
順便說一句ftell返回long int
的sys/stat.h頭定義了功能fstat()
,lstat()
返回的數據結構,並stat()
。
0
試試這個使用fstat()
:
int file=0;
if((file=open(<filename>,O_RDONLY)) < -1)
return -1; // some error with open()
struct stat fileStat;
if(fstat(file,&fileStat) < 0)
return -1; // some error with fstat()
printf("File Size: %d bytes\n",fileStat.st_size);
2
FTELL返回一個int。如果你在一個int值爲32位而你的文件大於2GB的系統上,你可能會得到一個負值。 POSIX提供了使用off_t的ftello和fseeko。 C有fgetpos和fsetpos,它們使用fpos_t - 但fpos_t不是一種算術類型 - 例如,它通過語言環境保留與charset處理相關的內容。
0
如果發生錯誤,ftell
唯一的負值返回值爲-1L。如果您不介意使用WinAPI,請使用GetFileSizeEx
獲取文件大小:
HANDLE hFile = CreateFile(filename,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
LARGE_INTEGER size;
GetFileSizeEx(hFile, &size);
printf("%ld", size.QuadPart);
CloseHandle(hFile);
相關問題
- 1. HDFS塊大小和文件大小的問題,文件小於塊大小
- 2. jsPDF - 縮小文件大小
- 3. 文件大小小的SQLITE?
- 4. Yii2最大文件大小
- 5. MongoDB文件大小太大
- 6. RadAsyncUpload最大文件大小
- 7. Java最大文件大小
- 8. WPF .exe - 大文件大小
- 9. 最大文件大小PyCharm
- 10. 文件大小過大
- 11. PHP文件大小報告舊大小
- 12. urlfetchapp文件大小
- 13. angularjs文件大小
- 14. linux文件大小
- 15. msi文件大小
- 16. asp.net文件大小
- 17. Laravel文件大小
- 18. PHP複製文件如果文件大小大於文件B的大小
- 19. 文本文件的大小
- 20. Java的.class文件大小Vs的java文件大小
- 21. Angular 4 - Angular-CLI文件大小vs Source-map-explorer文件大小
- 22. 使用文件大小讀取遠程文件大小
- 23. Xfs文件大小,inode大小和塊大小
- 24. 如何通過網絡傳輸大文件(文件大小>堆大小)?
- 25. 如何檢查文件大小是否超過最大文件大小批量
- 26. 爲什麼轉換的視頻文件大小大於原始文件大小?
- 27. 表是否大於文件系統的最大文件大小?
- 28. 如何在原始文件夾中減小.mp3文件的大小以減小Android中.apk文件的大小?
- 29. 分裂大文件分成小文件
- 30. 獲取文件大小,文件
你是什麼意思「錯誤的結果」?你得到了什麼,你期望什麼,爲什麼你期望它?另外,你是如何打開文件的? – 2011-04-22 16:07:24
您是否以二進制模式打開文件? – 2011-04-22 16:10:22
@David:我認爲這是一個文本模式/二進制模式問題。 – Mehrdad 2011-04-22 16:10:42