2009-09-04 14 views
154

मुझे सी # का उपयोग करके फ़ाइल का आकार प्राप्त करने का तरीका चाहिए, और डिस्क पर आकार नहीं। यह कैसे संभव है?आप फ़ाइल आकार को सी # में कैसे प्राप्त करते हैं?

वर्तमान में मैं इस पाश

foreach (FileInfo file in downloadedMessageInfo.GetFiles()) 
{ 
    //file.Length (will this work) 
} 

इस आकार या डिस्क पर आकार वापसी करेंगे है?

+0

संबंधित फ़ाइल का आकार मिलता है, लेकिन VB.NET के लिए: * [निर्धारण वीबीएनईटी में फ़ाइल का आकार] (http://stackoverflow.com/questions/10175630) *, –

उत्तर

162

FileInfo.Length बाइट्स (डिस्क पर आकार नहीं) में फ़ाइल की लंबाई लौटाएगा, इसलिए यह वही है जो आप खोज रहे हैं, मुझे लगता है।

+11

@ जेएल: हालांकि, दस्तावेज़ीकरण करता है। आप बस एक साधारण परीक्षण भी कर सकते हैं। – jason

+3

इसके अलावा: http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/85bf76ac-a254-41d4-a3d7-e7803c8d9bc3 यह "अन्य मूल्य" कैसे प्राप्त करें, इस बारे में एक चर्चा है डिस्क का माप। –

5

यह फ़ाइल सामग्री लंबाई

25

FileInfo.Length चाल करना होगा रिटर्न (यह MSDN प्रति ", [जी] ETS आकार, बाइट्स में वर्तमान फ़ाइल की।") वहाँ एक अच्छा page MSDN आम पर पर है I/O कार्य

7

MSDN FileInfo.Length कहता है कि यह "बाइट्स में वर्तमान फ़ाइल का आकार" है।

कुछ इस तरह के लिए मेरा ठेठ गूगल खोज है: MSDN FileInfo

3

डिस्क पर आकार अलग हो सकता है, यदि आप किसी अन्य फाइल सिस्टम (FAT16, NTFS, EXT3, आदि)

में फ़ाइल जैसा कि अन्य उत्तरदाताओं ने कहा है, यह आपको बाइट्स में आकार देगा, डिस्क पर आकार नहीं।

184

आप इनपुट के रूप में पहले से ही एक फ़ाइल पथ है, तो इस कोड को आप की जरूरत है:

long length = new System.IO.FileInfo(path).Length; 
-15

मैं साथ File.ReadAllBytes(@"D:\\testPA.txt").Length

+2

यदि फ़ाइल बड़ी है, तो यह आपकी लंबाई पाने के लिए आपको काफी सफेद ले जाएगी। – Grigory

+2

यह कोड बहुत खतरनाक हो सकता है। – Katianie

+1

यह सभी बाइट्स को मेमोरी में पढ़ता है, फाइल के आधार पर थोड़ी देर लग सकती है और मेमोरी में बहुत सारे डेटा जोड़ सकते हैं .. –

संबंधित मुद्दे