17.07.2024

Windows'da istenilen boyutta dosya oluşturmak

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: