Veri varsa, bir dosyanın diskteki boyutu 0 bayt olabilir?


106

Windows 10'da 362 bayt veri içeren bir dosyam var ancak "diskteki boyut" yalnızca 0 bayt. Montajda yazılmış ve Notepad ++ ile kaydedilmiş basit bir "Merhaba dünya" programıdır .

Dosya boyutu 362 bayt olduğunda diskteki boyutun sıfır olması nasıl mümkün olabilir?

Bir SSD'm var, normal bir sabit disk değil.

Özellikler iletişim kutusunun ekran görüntüsü:

Özellikler iletişim kutusunun ekran görüntüsü


4
Kısa cevap: Eğer içeriğini saklamak için diskte boş alana gerek yoksa.
David Schwartz,

11
@Thomas Bir kopya değil. Ad benzer görünüyor, ancak bu soru, neden bir yere kayıt yapılmasına rağmen Windows'un neden sıfır baytlık bir dosyayı sıfır boyutta ilan ettiğini soruyor. Bu soru, dosyada veri olsa bile neden diskteki boyutun sıfır olabileceğini soruyor.
Ben N


@BenN Uygunsuz olarak işaretliyor çünkü haklısınız, kesinlikle kopya değil.
William

Merhaba Coder88, gönderinizi kopya olarak işaretleyen kişinin hatalı olduğunu düşünüyorum - diğer soru farklı bir şey soruyordu; Gerçekten iyi bir soru sordun. Sorunuzun çözüldüğünü belirtmek istiyorsanız, burada bir cevabın yanındaki onay işaretini tıklayabilirsiniz.
Ben N

Yanıtlar:


155

Bu, dosya içeriği ve dosya sistemi defter tutma işlemlerinin 1KB'ye sığacak kadar küçük olması durumunda gerçekleşir. Disk alanından tasarruf etmek için NTFS, küçük dosyaları "yerleşik" tutar, içeriğini doğrudan dosya kaydında saklar, böylece küme ayrılması gerekmez. Bu nedenle, diskteki boyut sıfırdır çünkü dosya kaydının ötesinde bir şey yoktur. Dosya yeterince büyüdükten sonra, NTFS "yerleşik olmayan" duruma getirir, bunun için bir veya daha fazla küme ayırır (sıfırda "diskte sıfır olmayan bir boyut oluşturma") ve verilerin bulunduğu yerde dosya kaydında bir "eşleme çifti" oluşturur. kümeye gelin.

SSD sabit diskleri veya Windows 10 bunu etkilemez; bu sadece bir NTFS özelliği. Daha fazla okuma: NTFS Dosya Büyümesinin Dört Aşaması .

"Diskteki boyut" metriğinin tam olarak doğru olmadığını unutmayın. Örneğin, NTFS dosya kaydının aldığı 1KB sabitini asla içermez. Metrik, NTFS kullanmayan ve bu nedenle bu fenomeni açıklayamayan Windows 95'te tanıtıldı; sadece dosya boyutunu, küme boyutunun bir sonraki katına kadar yuvarladı. Bu tahmin algoritması, aralarındaki birçok Windows sürümü NTFS ve yerleşik depolamayı kullanmasına rağmen, Windows 7'ye taşındı. Sonunda Windows 8'de, yalnızca yerleşik verileri içeren dosyaları diskte sıfır boyutta olarak saymak için güncelleştirildi. Daha fazla okuma: Sadece 'Diskteki Boyut' Nedir?


1
Bir an için Veri Tekilleştirme'nin etkilerini incelediğimizi düşündüm ( blog.fosketts.net/2012/01/03/… ) ancak özelliğin "diskteki boyut" ölçüsü gibi bir şeye saydam bir seviyede çalıştığını düşünüyorum.
misha256

8
Fakat bekleyin ... OPS davranışını NTFS birimimde (Windows 7) çoğaltamıyorum. Küçük dosyaları nasıl oluşturduğumdan bağımsız olarak (bazıları sadece bir bayt uzunluğunda), Dosya Özellikleri iletişim kutusuna göre her biri 4KB "disk alanı" kaplar . Hmm ...
misha256 23

8
@ misha256 Huh, Windows 8.1'de ~ 700 byte altındaki bir dosyayla çoğaltabilirim. Tahminimce, algoritma Windows 7 ile 8.1 arasında bir yerde daha akıllı hale geldi, çünkü başlangıçta herhangi bir süslü NTFS olayı ( kaynak ) bilmiyordu . Bir dosya ikinci aşamaya geçtiğinde, geri çekilmediğini unutmayın.
Ben N

6
@Philipp Sanırım bir şekilde tartışabiliriz. Geleneksel olarak, "diskteki dosya", "ayrılmış kümelerin boyutu" idi (örneğin, çok büyük bir küme boyutu seçmenin etkilerini görebilirsiniz). Hiçbir zaman, bildiğim kadarıyla, dosya sisteminin ihtiyaç duyduğu "katalog" alanını içermez (örneğin, "dizin girişi" veya "FAT girişleri zincirinin uzunluğu").
TripeHound

3
@Philipp: Her neyse, dosya büyüklüğündeki defter tutma da dahil olmak üzere kıllı hale geliyor: 1 kümeli bir dosyayı 3 isim ile nasıl tarif edersiniz?
Deduplicator
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.