Testing Files Generator
हिन्दी

सटीक आकार की फ़ाइल कैसे बनाएँ

हर सिस्टम में इसके लिए एक कमांड है, और तीनों नीचे हैं। वे आपको ठीक सही बाइट संख्या की फ़ाइल देती हैं - और बहुत से टेस्ट के लिए आपको बस यही चाहिए। इस पेज की हर कमांड प्रकाशित करने से पहले उस सिस्टम पर चलाई गई जिसकी वह है।

छोटा जवाब

Windows: fsutil file createnew name 10485760। Linux: dd if=/dev/zero of=name bs=1M count=10। macOS: mkfile 10m name। आकार बाइट में होते हैं, और आपके फ़ाइल मैनेजर के गिनने के तरीके से 10 MB यानी 10485760।

Windows

fsutil, और बिना किसी अतिरिक्त चीज़ वाला PowerShell रूप

fsutil Windows के साथ आता है। यह आकार बाइट में लेता है, इसलिए पहले संख्या निकाल लें - 10 MB यानी 10485760, 100 MB यानी 104857600, 1 GB यानी 1073741824।

fsutil file createnew test10mb.bin 10485760

Windows 11 पर मापा गया: यह सामान्य प्रॉम्प्ट से चलता है और उन्नत प्रॉम्प्ट नहीं माँगता, और फ़ाइल ठीक 10485760 बाइट की बनती है।

PowerShell बिना किसी दूसरे प्रोग्राम को बुलाए यही कर सकता है, और इकाइयाँ समझता है:

$file = New-Object System.IO.FileStream "test10mb.bin", Create, ReadWrite
$file.SetLength(10MB)
$file.Close()

PowerShell में 10MB का मतलब 10485760 बाइट है, वही 1024 आधारित गिनती जो एक्सप्लोरर इस्तेमाल करता है, इसलिए ऊपर की दोनों कमांड एक ही आकार बनाती हैं।

Linux

dd, truncate और fallocate, और वह अंतर जो लोगों को फँसाता है

dd वह है जिसे सब जानते हैं। यह बाइट सच में लिखता है:

dd if=/dev/zero of=test10mb.bin bs=1M count=10

truncate तुरंत होता है, और यही पेंच है। Alpine Linux पर मापने पर फ़ाइल 10485760 बाइट बताती है और शून्य ब्लॉक घेरती है - यह एक स्पार्स फ़ाइल है। जो भी इसे पढ़ता है उसे दस मेगाबाइट शून्य मिलते हैं, पर डिस्क ने जगह कभी दी ही नहीं:

truncate -s 10M test10mb.bin

अपलोड सीमा परखने के लिए यह ठीक है और डिस्क कोटा परखने के लिए भ्रामक। जब जगह असली होनी चाहिए तब fallocate की ओर जाएँ:

fallocate -l 10M test10mb.bin

और जब सामग्री असंपीड्य होनी चाहिए, ताकि कोई आर्काइवर उसे फिर से छोटा न कर सके:

head -c 10485760 /dev/urandom > test10mb.bin

macOS

mkfile, जो स्पार्स नहीं है, और वे दो जिन्हें आप पहले से जानते हैं

macOS में mkfile आता है। macOS 26.6.2 पर मापा गया: 10485760 बाइट और 20480 ब्लॉक, यानी जगह वादे से नहीं, सच में आवंटित होती है:

mkfile 10m test10mb.bin

dd और truncate भी वहाँ हैं और Linux की तरह ही चलते हैं:

dd if=/dev/zero of=test10mb.bin bs=1m count=10
truncate -s 10M test10mb.bin

यह कहाँ काम करना बंद कर देता है

सही आकार की फ़ाइल सही क़िस्म की फ़ाइल नहीं होती

ऊपर की सारी चीज़ें आपको शून्यों का एक ब्लॉक देती हैं। जब जाँचा जा रहा हिस्सा सिर्फ़ आकार देखता है - अपलोड सीमा, कोटा, ट्रांसफ़र - तब यह काफ़ी है। जिस पल कोई चीज़ फ़ाइल को खोलती है, यह काफ़ी नहीं रहता।

मापा गया, और खुद करके देखना लायक है: fsutil से 2 MB की फ़ाइल बनाएँ, उसका नाम photo.png रखें, और किसी इमेज लाइब्रेरी को दें। Pillow जवाब देता है cannot identify image file। यह PNG नहीं है। यह कभी था ही नहीं - सिर्फ़ नाम ऐसा कहता था।

यह सुनने में जितना लगता है उससे ज़्यादा मायने रखता है, क्योंकि टेस्ट फिर किस तरफ़ विफल होता है यही सवाल है। आपका अपलोड एंडपॉइंट फ़ाइल ठुकरा देता है, आपका टेस्ट हरा हो जाता है, और आप मान लेते हैं कि आकार सीमा काम करती है। उसने फ़ाइल आकार की वजह से नहीं ठुकराई। उसने इसलिए ठुकराई कि बाइट तस्वीर नहीं थे, और जिस नियम को आप जाँचना चाहते थे वह कभी छुआ ही नहीं गया।

दूसरा रास्ता

उस फ़ॉर्मैट की असली फ़ाइल, ठीक उसी आकार में जो आपने माँगा

Testing Files Generator यही करता है। फ़ाइल अपने फ़ॉर्मैट की सच्ची फ़ाइल है - वह अपने सॉफ़्टवेयर में खुलती है - और उसमें ठीक उतने बाइट हैं जितने आपने माँगे, बाइट तक:

tfg generate --format png --size 10mb --out ./fixtures

ऐसा आकार माँगें जिस तक कोई फ़ॉर्मैट नहीं पहुँच सकता और आपको न्यूनतम सीमा और उसका कारण बताने वाली त्रुटि मिलती है, गलत आकार की फ़ाइल कभी नहीं। फ़ॉर्मैट पेज हर फ़ॉर्मैट को उसकी सबसे छोटी संभव फ़ाइल के साथ सूचीबद्ध करता है।

और एक सीमा एक नहीं, तीन टेस्ट केस होती है, इसलिए टूल तीनों बनाता है:

tfg generate --format pdf --boundary 10mb --out ./edges

इससे आपको 10485759, 10485760 और 10485761 बाइट की फ़ाइलें मिलती हैं, और एक मैनिफ़ेस्ट जो बताता है कि आपके सिस्टम को किन्हें स्वीकार करना चाहिए और किन्हें अस्वीकार। उपयोग के मामलों का पेज इसे और चार दूसरे काम समझाता है जिनके लिए यह बना है।

मुफ़्त और ओपन सोर्स, GPL-3.0। साइन अप की ज़रूरत नहीं। Windows और macOS के डाउनलोड हस्ताक्षरित हैं और बिना चेतावनी के शुरू होते हैं।

तो कौन सा इस्तेमाल करें?

दोनों इस पेज पर इसलिए हैं क्योंकि दोनों कभी-कभी सही होते हैं। जिस गलती से बचना है वह है दूसरे की ज़रूरत वाली जगह पहले को इस्तेमाल करना और हरे टेस्ट को सबूत मान लेना।