Fayl hajmi qanday. Axborot qanday o'lchanadi va fayl yoki papka hajmini qanday aniqlash mumkin? Axborotni saqlashning asosiy birliklari


Ehtimol, veb-saytlarda fayl hajmini ko'rsatadigan imzoni tez-tez ko'rasiz. Hech kim bu ko'rsatkichni o'zi imzolamaydi. Bu muammoni PHP da funksiya yozish orqali hal qilish mumkin. Natijada, u quyidagi kabi qatorni chiqaradi:

Fayl hajmi: 2,3 MB
Saytdan har qanday materialni yuklab olishda juda qulay. Shunday qilib, keling, boshlaylik.

Fayl hajmini aniqlaydigan PHP funksiyasini yarating

Funktsiya juda oddiy va tushunarli bo'ladi. O'rnatilgan uchta funksiyadan foydalanadi:

fayl_mavjud- mavjudligini tekshirish belgilangan fayl yoki katalog.

fayl hajmi- fayl hajmini aniqlash. Natijani baytlarda qaytaradi. Agar fayl 2 GB dan katta bo'lsa, serverga qarab, u noto'g'ri natijalarni ko'rsatishi mumkin.

dumaloq- chiqish qiymatini butun songa va davr ajratgichdan keyin o'ndan biriga qisqartiradigan o'rnatilgan funksiya.
Funktsiya faylning o'zi mavjudligini tekshiradi, keyin ketma-ket fayl hajmi qanchalik katta ekanligini aniqlashga harakat qiladi - agar u 1024 baytdan ortiq bo'lsa, natija MBda chiqarilishi kerak, agar 1024 MB dan ortiq bo'lsa, u bo'lishi kerak. chiqish GB. Va har bir qadamning oxirida, o'rnatilgan dumaloq funksiya natijani ko'p sonlardan butun qiymatga va ajratuvchi bilan o'ndan biriga yaxlitlaydi.

Endi funksiya faylini yaratamiz. Bunday fayllarni alohida papkada saqlash odatiy holdir. Masalan funktsiyasi.

PHP kodi(fayl function.php)

// funktsiya argumentlari faylga yo'l bo'ladi
get_filesize funksiyasi ($file)
{
// faylga o'ting
if(!file_exists($file)) "Fayl topilmadi"ni qaytaradi;
// endi biz fayl hajmini bir necha bosqichda aniqlaymiz
$filesiz = fayl o'lchami($fayl);
// Agar hajmi 1 KB dan katta bo'lsa
if($fayl hajmi > 1024)
{

// Agar fayl hajmi Kilobaytdan katta bo'lsa
// uni Megabaytda ko'rsatish yaxshidir. MB ga aylantiring
if($fayl hajmi > 1024)
{
$fayl o'lchami = ($fayl hajmi/1024);
// Va agar fayl 1 megabaytdan ortiq bo'lsa, biz tekshiramiz
// 1 Gigabaytdan kattami
if($fayl hajmi > 1024)
{
$fayl o'lchami = ($fayl hajmi/1024);

$fayl hajmini qaytaring." GB";
}
boshqa
{
$fayl o'lchami = dumaloq ($fayl o'lchami, 1);
$fayl hajmini qaytaring." MB";
}
}
boshqa
{
$fayl o'lchami = dumaloq ($fayl o'lchami, 1);
$fayl hajmini qaytaring." Kb";
}
}
boshqa
{
$fayl o'lchami = dumaloq ($fayl o'lchami, 1);
$fayl hajmini qaytaring."bayt";
}
}
?>
Biz funktsiyani yaratdik. Qolgan narsa uni qo'llashdir.

PHP kodi

include_once "function/function.php"; // faylni funksiyaga kiriting

// funktsiya tomonidan qayta ishlash uchun yo'l yoki o'zgaruvchini kiriting
$size = get_filesize("rasmlar/foto.jpg");
echo "Fayl hajmi: ".$size.""; // natijani o'lcham bilan chiqaring
?>
Hammasi tayyor! Sog'ligingiz uchun zavqlaning!
E'tiboringiz uchun rahmat! Va ishlaringizga omad!

Ushbu maqolada men o'quvchilarimni kontseptsiya bilan tanishtirmoqchi edim fayl/papka hajmi, yoki hatto dastur (dastur papkalar va fayllar to'plami ekanligini hisobga olsak).

Faylli har qanday fayl yoki papkani egallaydi mahalliy disklar ma'lum hajmdagi xotira. Ya'ni, barcha fayl va papkalar hajmi, boshqacha aytganda, vazni yoki hajmiga ega.

Maktabdan beri gramm va kilogramm, metr va kilometr kabi tushunchalarni bilamiz. Kompyuter dunyosining ham o'ziga xos o'lchov birliklari mavjud. Ular fayl va papkalarni o'lchaydilar. Ilg'or foydalanuvchilarning "jargoni" ga asoslanib, biz ma'lum bir fayl yoki papkaning "og'irligi" qancha ekanligini aniqlaymiz. Asosiy o'lchov birliklari: baytlar, kilobaytlar, megabaytlar, gigabaytlar va terabaytlar.

1 KB = 1024 bayt

1 MB = 1024 KB

1 GB = 1024 MB

Keling, shifrlaymiz:

Bir KB (kilobayt)da 1024 bayt mavjud.
Bir MB (megabayt) 1024 KB (kilobayt) o'z ichiga oladi.
Bir GB (gigabayt) 1024 MB (megabayt) o'z ichiga oladi.

Qanday aniqlash mumkin fayl yoki papka hajmi?

Fayl yoki faylli papka hajmini bilish uchun kursorni fayl yoki papka ustiga olib boring va bir necha soniya ushlab turing. Fayl yoki papkaning xarakteristikalari bilan kichik oyna paydo bo'ladi, parametrlardan biri o'lchamdir.

Agar kursorni fayl yoki jild ustiga olib borganingizda hech narsa ko‘rinmasa, o‘sha fayl yoki jildni o‘ng tugmasini bosing. Ochilgan kontekst menyusida "Xususiyatlar" ni tanlang.

Ushbu fayl yoki papkaning hajmini ko'rsatadigan oyna ochiladi.

Nega biz o'lchamlarni bilishimiz kerak? Misol uchun, fayl yoki papkani diskka (floppi, flesh-disk) yozishimiz mumkinmi yoki mahalliy disklarda qancha joy qolganligini aniqlash uchun.

Buni aniqlash uchun biz diskda (floppi, flesh-disk) qancha ma'lumot to'g'ri kelishini bilishimiz kerak:

  • Floppy disk - 1,44 MB (matnli fayllarni yozish uchun mos)
  • CD disk - 700 MB (musiqa, kichik video va dasturlarni yozish uchun mos)
  • DVD disk— 4 GB dan (har qanday narsani yozib olish uchun mos). DVD diskining standart sig'imi 4,7 GB. Ikki tomonlama DVD disklari ham mavjud. Bu shuni anglatadiki, yozuv har ikki tomonda ham bo'lishi mumkin - bir va boshqa. Ushbu drayvlar 9,4 GB sig'imga ega. Ikki qavatli disklar ham mavjud, ammo ular kamroq tarqalgan. Ushbu disklar quyidagi hajmlarga ega: 1 tomonlama 2 qatlamli - 8,5 GB; 2 tomonlama 2 qatlamli - 17,1 GB.
  • Flash drayvlar - 1 GB dan (har qanday narsani yozib olish uchun mos)

Men ushbu maqolada gaplashmoqchi bo'lgan narsam shu.

Standart POSIX fayl hajmini olishning o'ziga xos usuli mavjud.
Funktsiyadan foydalanish uchun sys/stat.h sarlavhasini qo'shing.

mavhum

  • stat(3) yordamida fayl statistikasini oling.
  • st_size xususiyatini oling.

Misollar

Eslatma. Hajmi 4 GB bilan cheklangan. Agar Fat32 tizimi Fat32 bo'lmasa, 64 bitli versiyadan foydalaning!

#o'z ichiga oladi #o'z ichiga oladi int main(int argc, char** argv) ( struct stat info; stat(argv, &info); // "st" "stat" ning qisqartmasi printf("%s: size=%ld\n", argv , info.st_size); ) #include #o'z ichiga oladi int main(int argc, char** argv) ( struct stat64 info; stat64(argv, &info); // "st" "stat" ning qisqartmasi printf("%s: size=%ld\n", argv , info.st_size); )

ANSI C (standart)

ANSI C fayl uzunligini aniqlashning bevosita usulini ta'minlamaydi.
Biz aqlimizni ishga solishimiz kerak. Endi biz qidiruv usulidan foydalanamiz!

mavhum

  • fseek(3) yordamida faylni oxirigacha toping.
  • ftell(3) yordamida joriy pozitsiyani oling.

misol

#o'z ichiga oladi int main(int argc, char** argv) ( FILE* fp = fopen(argv); int f_size; fseek(fp, 0, SEEK_END); f_size = ftell(fp); orqaga o‘tkazish(fp); // orqaga qaytish uchun qayta ishga tushirish printf("%s: size=%ld", (imzosiz long)f_size); )

Agar stdin fayl yoki quvur bo'lsa. POSIX, ANSI C ishlamaydi.
Agar fayl quvur yoki standart stdin bo'lsa, 0 ni qaytaradi.

Fikr: Buning o'rniga standart foydalanishingiz kerak POSIX. Chunki u 64 bitli qo'llab-quvvatlashga ega.

Agar umumiy ma'lumot haqida gapiradigan bo'lsak, u BYTES bilan o'lchanadi. Ushbu birliklarda o'lchash 1956 yilda boshlangan. Keyin bu qiymat juda etarli edi. Qaysi qiymat haqida gapirayotganimizni aniqroq qilish uchun men sizga 1 bayt = 1 belgi ekanligini aytaman. Texnologiyaning rivojlanishi bilan axborot hajmi ham oshdi va BYTESda katta hajmdagi axborotni o'lchash noqulay bo'lib qoldi. Keyin KILO-BYTE (KB), MEGA-BYTE (MB), GIGA-BYTE (GB), TERA-BYTE (TB) va boshqalar prefikslari paydo bo'ldi.

Ushbu qiymatlar qanchalik katta yoki kichik ekanligini tushunish uchun men quyidagi taqqoslashni beraman:
- 1KB (bir kilobayt) = 1024 bayt va bu taxminan A4 formatidagi bitta bosilgan varaqga teng bo'lgan ma'lumot miqdori;

— 1MB (bir megabayt) = 1024 kilobayt va bu 600-700 sahifali munosib hajmdagi ma'lumotlarning miqdori!

— 1GB (bir gigabayt) = 1024 megabayt va bu allaqachon har biri 600 sahifadan iborat 1024 kitobdan iborat butun kutubxona!

— 1TB (bir terabayt) = 1024 gigabayt, bu hajmdagi maʼlumotlar 8 millionga yaqin kitobni oʻz ichiga olgan oʻrtacha Yevropa kutubxonasi bilan solishtirish mumkin. Masalan, Rossiya davlat kutubxonasida 43 millionga yaqin eksponat mavjud.

Keling, ushbu ma'lumotni yozib olish mumkin bo'lgan ommaviy axborot vositalariga oid ma'lumotlarning hajmi va turini taqqoslaylik.

— 1,44 MB sig‘imli floppi disk. Bir vaqtlar floppi asosiy mavjud saqlash vositasi edi. raqamli ma'lumotlar, chunki Siz haqiqatan ham ko'p narsalarni yozib olishingiz mumkin. Hozirgi vaqtda floppi disklar asosan buxgalterlar tomonidan saqlash uchun ishlatiladi. elektron kalitlar va imzolar. Sababi oddiy - floppi diskda saqlash joyi etarli emas zamonaviy ma'lumotlar. Floppy diskda olingan bir yoki ikkita fotosuratni yozib olishingiz mumkin. Mobil telefon 3 megapikselli kamera bilan; besh, o'nta Word, Excel hujjatlari.

— 1 GB hajmli flesh-disk. Ayni paytda eng qulay axborot tashuvchisi. Hisobni ko'paytirish uchun flesh-diskning hajmini 1 Gb ga oldim, lekin umuman olganda, yozish paytida 64 Gb flesh-disklar ham bor!
1 Gb flesh-diskda nimani yozish mumkin: bitta film, nisbatan yaxshi sifat; taxminan 200 musiqa fayllari.mp3 formatida; 200 ga yaqin fotosuratlar yaxshi sifat; ko'plab hujjatlar va kichik dasturlar.

— 700MB sig‘imli CD disk. Siz kompakt diskga yozishingiz mumkin: bitta film .avi formatida, nisbatan yaxshi sifatda; .mp3 formatidagi 150 ga yaqin musiqa fayllari; 150 ga yaqin yaxshi sifatli fotosuratlar; ko'plab hujjatlar va kichik dasturlar.

— 4,7 GB hajmli DVD disk. Siz DVD diskiga yozishingiz mumkin: DVD yoki HDTV formatida bitta film; .avi formatidagi yaxshi sifatli 4-5 ta film; .mp3 formatidagi 1200 ga yaqin musiqa fayllari; 1000 ga yaqin yaxshi sifatli fotosuratlar; juda ko'p hujjatlar va dasturlar.

— 120 Gb sig‘imli qattiq disk. Bu erda hujjatlar haqida yozmaslik uchun men uni bunday qattiq diskda yozilishi mumkin bo'lgan filmlar soni bilan taqqoslayman. Shunday qilib, 120 Gb qattiq diskda siz DVD yoki HDTV sifatida 25 ta filmni yozib olishingiz mumkin!

Endi disk, fayl yoki papka hajmini qanday aniqlashni birma-bir aniqlaymiz.
Windows-da siz Explorer-da fayl, papka yoki disk hajmini aniqlashingiz mumkin. Ish stolidagi "Mening kompyuterim" yorlig'ida sichqonchaning chap tugmasi bilan ikki marta bosish yoki "Win + E" tugmalar birikmasidan foydalanib, "Explorer" ni ishga tushirishingiz mumkin.

Misol uchun, agar siz qanchaligini bilmoqchi bo'lsangiz bo'sh joy diskda, xususan, flesh-diskda qoldirilgan, so'ngra olinadigan diskning rasmiga sichqonchaning o'ng tugmachasini bosing, odatda u " deb etiketlanadi. Olinadigan haydovchi(F :)" yoki "Flash disk nomi (F :)", rasmdagi kabi:

Shunday qilib, olinadigan disk - flesh-disk tasvirini sichqonchaning o'ng tugmasi bilan bosing va ochiladigan menyuda eng pastki qismida "Xususiyatlar" bandini tanlang. Shundan so'ng oyna ochiladi:


Bu erda qancha band (ko'k rang bilan ta'kidlangan), qancha bo'sh (pushti rang bilan belgilangan) va diskda qancha joy borligini ko'rishingiz mumkin.

Shunday qilib, siz qolgan bo'sh joyni nafaqat flesh-diskda, balki har qanday olinadigan yoki ham topishingiz mumkin mantiqiy haydovchi Vinchester.

Fayl yoki papkaning hajmini aniqlash sxemasi disk bilan bir xil. Bular. diskda toping kerakli fayl yoki papkani sichqonchaning o'ng tugmasi bilan bosing va "Xususiyatlar" ga qarang.


Barcha kerakli ma'lumotlar u erda bo'ladi.


Agar siz fayllar yoki papkalar guruhining hajmini bilmoqchi bo'lsangiz, unda siz ularni tanlashingiz va bir xil operatsiyalarni bajarishingiz kerak, ya'ni. Tanlangan fayl yoki papkalardan birini sichqonchaning o'ng tugmasi bilan bosing, "Xususiyatlar" ni tanlang va hajmini ko'ring.

Ha, darsning ikkinchi qismi "Kompyuter asoslari" sarlavhasiga to'g'ri kelmaydi, ammo shunga qaramay. Agar sizda biron bir savol bo'lsa, ularni har doim sharhlarda so'rashingiz mumkin.

"Mening o'yinchog'im juda og'ir", "engil fayl", og'ir papka kabi iboralarni eshitgan bo'lsangiz kerak. Haqiqatan ham papkalar va fayllarni tortish mumkinmi? Va ular qaysi birliklarda tortiladi? Ha, qanchalik g'alati tuyulmasin, fayllar va papkalarning ham o'z vazni, to'g'rirog'i, hajmi bor. Agar ular hech narsa tortishmasa, bizga kerak bo'lmaydi qattiq disklar, va boshqa ma'lumotlar uchun joy ajrating.

Hatto ma'lumotni ham o'lchash mumkin. Buning uchun kompyuter terminologiyasining o'ziga xos o'lchov birliklari mavjud: baytlar, kilobaytlar, megabaytlar, gigabaytlar, terabaytlar va boshqalar. Hammasi kompyuter ma'lumotlari 0 (nol) va 1 (bir) yordamida yoziladi. Kompyuter tilida nol va bitta 1 bit. Sakkiz bitdan iborat guruh bayt deb ataladi. Ko'proq o'qish.

Axborotni saqlashning asosiy birliklari:

1 bayt= 8 bit

1 kilobayt(KB) = 1024 bayt

1 megabayt(MB) = 1024 kilobayt

Kompyuter ishlayotganligi sababli ikkilik tizim(1 va 0), keyin unga ma'lumotni shu tarzda ajratish ancha qulayroqdir. 1024 raqami bir kilobayt, ikkilik sanoq tizimidagi bir kilobayt esa 2 10 = 1024. Biz o'nlik sanoq tizimidan foydalanamiz, shuning uchun bunday raqamlar bilan ishlash odatiy emas.

Har qanday fayl (grafik, musiqa, video va boshqalar) o'z hajmiga ega. Kompyuterdagi barcha ma'lumotlar yozib olinadi qattiq disk, ma'lum hajmga ega. Kompyuter xotirasi ham shu birliklarda o'lchanadi.

Qattiq disk, floppi, flesh-disk, xotira kartasi va CD/DVD disklari kabi har qanday saqlash muhiti o'z sig'imiga ega, undan ko'pini unga yozib bo'lmaydi.

Fayl yoki jildning og'irligini qanday aniqlash mumkin

Fayl yoki jildning og'irligi qancha ekanligini bilish uchun kursorni fayl (yoki papka) ustiga olib borib, ma'lumotli oyna paydo bo'lguncha bir necha soniya kutishingiz kerak.

Agar papka yoki fayl juda katta bo'lsa, unda siz uning hajmi haqida ma'lumot topa olmaysiz. Bunday holda siz papkani yoki faylni sichqonchaning o'ng tugmasi bilan bosishingiz va ochiladigan menyudan tanlashingiz kerak Xususiyatlari(eng pastda) va yorliqdagi yangi oynada o'lchamni ko'ring Umumiy.