আপনি সি # তে ফাইলের আকারটি কীভাবে পাবেন?


307

সি # ব্যবহার করে কোনও ফাইলের আকার পাওয়ার জন্য আমার একটি উপায় দরকার, ডিস্কের আকার নয়। এটা কিভাবে সম্ভব?

বর্তমানে আমার এই লুপটি আছে

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

এটি কি ডিস্কের আকার বা আকারটি ফেরত দেবে?


উত্তর:


324

FileInfo.Length ফাইলের দৈর্ঘ্য, বাইটে (ডিস্কের আকারে নয়) ফিরিয়ে দেবে, সুতরাং আপনি যা খুঁজছেন এটি এটি।


4
এছাড়াও: social.msdn.microsoft.com/forums/en-US/Vsexpressvcs/thread/… এটি "অন্যান্য মান" কীভাবে পাবেন, এটি ডিস্কের আকারের বিষয়ে আলোচনা।
মার্সিন ডিপটুয়া

386

আপনার যদি ইতিমধ্যে ইনপুট হিসাবে কোনও ফাইল পাথ থাকে তবে এটি আপনার প্রয়োজনীয় কোড:

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

1
এখানে বর্ণিত হিসাবে চেষ্টা করুন / ধরুন ব্লকটি দিয়ে এবং সম্ভাব্য সমস্ত ব্যতিক্রমগুলি পরীক্ষা করুন : সিকিউরিটিএক্সসেপশন, অননুমোদিতঅ্যাক্সেস এক্সেপশন, পাথটুলং এক্সসেপশন, নোট সাপোর্টড এক্সসেপশন এবং - আপনার ব্যবহারের ক্ষেত্রে নির্ভরশীল - আর্গুমেন্টনাল
এক্সসেপশন

37

FileInfo.Lengthকৌতুক করতে হবে (দুটিই MSDN এটা প্রতি "[ছ] আকার, বাইটে, বর্তমান ফাইলের ETS।") একটা চমৎকার নেই পৃষ্ঠা সাধারণ ইনপুট / আউটপুট কর্ম উপর দুটিই MSDN উপর।




4

আপনি যদি ফাইলটিকে অন্য কোনও ফাইল সিস্টেমে সরিয়ে থাকেন তবে ডিস্কের আকার আলাদা হতে পারে (FAT16, NTFS, EXT3, ইত্যাদি)

অন্যান্য উত্তরদাতারা যেমন বলেছেন, এটি আপনাকে ডিস্কের আকার নয়, বাইটে আকার দেবে।


0

ফাইলআইএনফো ক্লাসের দৈর্ঘ্যের সম্পত্তি ফাইলের আকার (ডিস্কের আকার নয়) দেয়। আপনি যদি লম্বা বাইট মানের চেয়ে ফর্ম্যাট করা ফাইলের আকার (অর্থাত্ 15 কেবি) চান তবে আপনি সিএসআরপলিব ব্যবহার করতে পারেন , আমি তৈরি একটি প্যাকেজ যা ফাইলআইএনফো ক্লাসে আরও কার্যকারিতা যুক্ত করে। এখানে একটি উদাহরণ:

using CSharpLib;
FileInfo info = new FileInfo("sample.txt");
Console.WriteLine(info.FormatBytes());  // Output: 15 MB
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.