Amacım, Windows kullanarak diskte anlık olarak istenilen boyutta bir dosya oluşturmak. Bununla ilgili yöntemleri zaten, konunun bilir kişileri [1] adresinde özetlemiş. Ben de onları bir kez daha burada toparlamak istedim.
Yöntemlerden birisi fsutil kullanmak. 1 MB boyutunda file1.txt dosyasını, mevcut klasörde oluşturmak için, boyutu byte cinsinden vermek gerek:
fsutil file createnew file1.txt 1048576
Powershell (.Net kütüphanesi) kullanarak oluşturmak için yöntem şöyle:
[io.file]::Create("file2.txt").SetLength(1MB).Close
Sysinternals aracı contig'i kullanmak da bir seçenek:
contig64 -n testfile (1MB)
Bu da olmadıysa son yöntem olmasa da bu yazının son önerisi diskpart ile vdisk oluşturmak:
DISKPART CREATE VDISK FILE="C:\file3.txt" MAXIMUM=1 TYPE=FIXED
Burada dikkat edilecek MAXIMUM parametresi ile verilen dosya boyutunun megabyte cinsinden veri olması gerek. Ayrıca FILE parametresi ile kısmi değil tam dosya yolu verilmeli. Bu yöntem, kullanımı en zor yöntem.
Gördüğüm kadarıyla bu yöntemlerin hepsi içine birşey yazmadan oluşturuyor. Her dosyaya bir veri kaydedilmemiş olsa da dosya boyutu ile diskte yer kapladığı alan bölümleri aynı, 1MB.
Bir de sparse (seyrek, aralıklı) dosya denen bir kavram var. Önceki yöntemlerin hiçbirinin sparse dosya oluşturmadığı söylenmiş. Bir dosyanın sparse olup olmadığını anlamak için
fsutil sparse queryflag file1.txt
ve bir sparse dosya oluşturmak için
fsutil sparse setflag file2.txt fsutil Sparse SetRange file2.txt 0 1048576
Bu şekilde oluştup fsutil sparse queryflag ile sorgulayınca dosya tipi sparse olarak görüntülendi.
C:\> fsutil sparse queryflag file2.txt
This file is set as sparse
[1] https://stackoverflow.com/questions/982659/quickly-create-large-file-on-a-windows-system
Hiç yorum yok:
Yorum Gönder