সি প্রোগ্রামিং এ ফাইলের সাইজ কিভাবে বের করবেন

Si Programim E Pha Ilera Sa Ija Kibhabe Bera Karabena



আপনি কি সি প্রোগ্রামিং-এ নতুন এবং একটি ফাইলের আকার খুঁজে বের করার উপায় খুঁজছেন? আর কোথাও যাও না! এই গাইডে, আপনি সি প্রোগ্রামিং-এ ফাইলের আকার খোঁজার প্রক্রিয়া শিখবেন। একটি ফাইলের ভিতরে ডেটা ধরে রাখতে ব্যবহৃত বাইটের সংখ্যাকে ফাইলের আকার হিসাবে উল্লেখ করা হয়। ফাইলের আকার জেনে, আপনি অনুলিপি করা, পড়া বা লেখা সহ বিভিন্ন ফাইল-হ্যান্ডলিং অপারেশন করতে পারেন।

এই টিউটোরিয়াল এবং সহজ কোড উদাহরণে উল্লিখিত ধাপে ধাপে নির্দেশিকাগুলির মাধ্যমে, আপনি দ্রুত যেকোনো ফাইলের আকার খুঁজে পেতে পারেন।







সি প্রোগ্রামিং এ একটি ফাইলের আকার খুঁজুন

নীচে উল্লিখিত C-তে ফাইলের আকার খুঁজে বের করার বিভিন্ন উপায় রয়েছে।



1: stat() ফাংশন ব্যবহার করে

C-তে, ফাইলের আকার খুঁজে বের করার সবচেয়ে সহজ পদ্ধতি হল ব্যবহার করা stat() সিস্টেম কল ফাংশন। দ্য stat() ফাংশন ফাইল স্ট্যাটাস তথ্য পুনরুদ্ধার করে এবং এটি একটি স্ট্রাকটে সংরক্ষণ করে। এই কাঠামোর অন্যতম সদস্য হলেন ড st_size , যা বাইটে ফাইলের আকার দেয়। এই পদ্ধতিটি ম্যানুয়ালি ফাইল পয়েন্টার সরানো এড়ায়, এটি ব্যবহার করা সহজ এবং কম ত্রুটি-প্রবণ করে তোলে।



# অন্তর্ভুক্ত করুন
#include

int প্রধান ( )
{
গঠন stat st;
দীর্ঘ আকার ;
যদি ( stat ( 'C_File.txt' , এবং সেন্ট ) == 0 )
{
আকার = st.st_size;
printf ( 'ফাইলের আকার হল %ld বাইট৷ \n ' , আকার ) ;
}
ফিরে 0 ;
}


এই কোড নামক ফাইলের আকার পুনরুদ্ধার করে C_File.txt ব্যবহার করে stat() থেকে পদ্ধতি লাইব্রেরি দ্য st_size struct স্ট্যাটের উপাদান, যেখানে ফাংশনটি ফাইল সম্পর্কে তথ্য রাখে এবং আমাদের ফাইলের আকার খুঁজে পেতে দেয়। ফাইলের আকার পরিবর্তনশীল আকার রাখা হয়, এবং তারপর printf() একটি বার্তা সহ কনসোলে আকার প্রিন্ট করতে ব্যবহৃত হয়। অ্যাক্সেস করার চেষ্টা করার আগে st_size সম্পত্তি, যদি বিবৃতিটি যাচাই করে যে stat() ফাংশন কল সফল হয়েছে। কোডটি তারপর 0 ফেরত দেয় তা দেখাতে যে এটি সফলভাবে চলছে।





আউটপুট


2: fstat() ফাংশন ব্যবহার করা

অনুরূপ আরেকটি ফাংশন stat() হয় fstat() ফাংশন, যা সমতুল্য stat() কিন্তু ফাইলের নামের পরিবর্তে একটি খোলা ফাইলে কাজ করে। দ্য fstat() ফাংশন দ্বারা বর্ণিত খোলা ফাইল সম্পর্কে তথ্য পুনরুদ্ধার করে ফাইল বর্ণনাকারী এটা পাস. একটি খোলা ফাইলের একটি রেফারেন্স পূর্ণসংখ্যা দ্বারা প্রতিনিধিত্ব করা হয় ফাইল বর্ণনাকারী . একইভাবে থেকে stat(), fstat() বাইটে এর আকার সহ প্রদত্ত ফাইল সম্পর্কে স্থিতি তথ্য প্রদান করে।



# অন্তর্ভুক্ত করুন
#include
# অন্তর্ভুক্ত

int প্রধান ( ) {
int fd;
গঠন stat st;
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() ফাংশন ব্যবহার করা

সি প্রোগ্রামিং-এ ফাইলের আকার খুঁজে বের করার আরেকটি পদ্ধতি হল ব্যবহার করা fseek() এবং ftell() ফাংশন দ্য ftell() মেথড ফাইল পয়েন্টারের বর্তমান অবস্থান ফেরত দেয়, যেখানে fseek() ফাংশন ফাইল পয়েন্টারটিকে ফাইলের একটি নির্দিষ্ট জায়গায় নিয়ে যায়। বাইটে ফাইলের আকার ব্যবহার করে পাওয়া যেতে পারে ftell() ব্যবহার করার পরে বর্তমান অবস্থান অর্জন করার ফাংশন fseek() ফাইলের শেষে ফাইল পয়েন্টার স্থানান্তর করার ফাংশন।

# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত করুন

int প্রধান ( )
{
ফাইল * fp;
দীর্ঘ আকার ;

fp = fopen ( 'C_File.txt' , 'আরবি' ) ;
fseek ( fp, 0L, SEEK_END ) ;
আকার = ftell ( fp ) ;
fclose ( fp ) ;
printf ( 'ফাইলের আকার = %ld বাইট। \n ' , আকার ) ;

ফিরে 0 ;
}


উপরের কোডে, ব্যবহার করে fopen() পদ্ধতি, অ্যাপ্লিকেশনটি প্রথমে খোলে C_File.txt বাইনারি মোডে। দ্য fseek() ফাংশন তারপর ব্যবহার করে SEEK_END ফাইলের প্রান্তে ফাইল পয়েন্টার স্থানান্তর করার বিকল্প। ফাইলের বর্তমান অবস্থান, যা বাইটে এর আকারের সাথে মিলে যায়, তারপরে এটি ব্যবহার করে পাওয়া যেতে পারে ftell() ফাংশন কোড তারপর ব্যবহার করে fclose() কনসোলে ফাইলের আকার প্রিন্ট করার পরে ফাইলটি বন্ধ করার পদ্ধতি।

আউটপুট


4: ফাইললেংথ() ফাংশন ব্যবহার করা

পরবর্তী পদ্ধতিটি হল ফাইল ম্যানেজমেন্ট লাইব্রেরি ব্যবহার করে, যা অনেকগুলি ফাইল ম্যানিপুলেশন ফাংশন প্রদান করে, যার মধ্যে পাওয়ার ফাংশন সহ একটি ফাইলের আকার . উদাহরণস্বরূপ, ফাংশন ফাইলের দৈর্ঘ্য() বাইটে একটি ফাইলের দৈর্ঘ্য ফেরত দেয়, তার ফাইলের নাম দেওয়া হয়। এই ফাংশন হেডার ফাইল প্রয়োজন .

এছাড়াও আরেকটি ফাংশন আছে, _filelenthi64(), যা 4 গিগাবাইটের চেয়ে বড় ফাইলের জন্য বাইটে একটি ফাইলের দৈর্ঘ্য প্রদান করে। দুটি ফাংশনের মধ্যে পার্থক্য হল তাদের রিটার্ন মানের প্রকার, যা দেখায় যে ফাংশনটি কত বাইট পরিচালনা করতে পারে।

# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত

int প্রধান ( )
{
দীর্ঘ আকার ;
চর * fname = 'C_File.txt' ;
আকার = ফাইলের দৈর্ঘ্য ( নথি নম্বর ( fopen ( নাম 'আরবি' ) ) ) ;
printf ( 'ফাইলের আকার = %ld বাইট। \n ' , আকার ) ;

প্রত্যাবর্তন 0 ;
}


ফাইলের আকার C_File.txt উইন্ডোজ ফাইল ম্যানেজমেন্ট লাইব্রেরি ব্যবহার করে এই কোড দ্বারা বাইটে পাওয়া যায়। একটি খোলা ফাইলের ফাইল বর্ণনাকারী প্রদান করা হলে, পদ্ধতি ফাইলের দৈর্ঘ্য() বাইটে ফাইলের দৈর্ঘ্য ফেরত দেয়।

fopen() এই কোডে শুধুমাত্র পঠনযোগ্য বাইনারি মোডে ফাইলটি খোলে এবং নথি নম্বর() খোলা ফাইলের ফাইল বর্ণনাকারী ফেরত দেয়। তারপর, printf() ফাইলের আকার প্রিন্ট করতে ব্যবহৃত হয়। ফাংশনটি 0 রিটার্ন করে যা নির্দেশ করে যে এটি সফলভাবে কার্যকর করা হয়েছে।

আউটপুট


উপসংহার

খুঁজে বের করার বিভিন্ন পদ্ধতি আছে C-তে বাইটে ফাইলের আকার , প্রত্যেকের নিজস্ব সুবিধা এবং অসুবিধা রয়েছে। উপরের টিউটোরিয়ালে চারটি ভিন্ন পদ্ধতি নিয়ে আলোচনা করা হয়েছে; stat() ফাংশন fstat() ফাংশন fseek() এবং ftell() ফাংশন, এবং ফাইলের দৈর্ঘ্য() ফাংশন এই ফাংশনগুলি বোঝা ব্যবহারকারীদের আপনার সিস্টেমে যেকোনো ফাইলের আকার খুঁজে পেতে সহায়তা করবে।