On Windows, an empty file is a file whose logical byte count is exactly 0 — but testing, validation, and benchmarking workflows usually need a file at an exact non-zero size, not a zero-byte placeholder. The Dummy File Generator produces a local dummy file in your current browser tab with a strict file name, an exact whole-number byte count from 1 through 52,428,800 (50 MiB), and a chosen content pattern: zero bytes, secure random bytes, or repeated UTF-8 text. Every byte is constructed using standard browser APIs — Blob, URL.createObjectURL, Crypto.getRandomValues, and TextEncoder — and nothing is uploaded to Lizely or sent to another service. This makes the tool especially useful on Windows when you want to skip fsutil, PowerShell, or admin prompts, or when you need a file at an exact byte count rather than a multiple of the 4 KiB NTFS allocation unit. The construction, byte validation, and download all happen inside the current tab, so the file lands in your Downloads folder under the exact name and exact size you specified.

Why Windows Developers Need an Exact-Size Test File
Windows offers several built-in ways to make a file: right-click in File Explorer and pick New → Text Document, run type nul > file.txt in CMD, or call New-Item in PowerShell. Those paths all work for the simple case of a zero-byte file, but they become awkward when the task is to create a file at an exact byte size — say, 1,234,567 bytes to reproduce an upload-limit edge case, or a 25 MiB file to test a progress bar that misbehaves at the quarter point. The Windows fsutil file createnew command can produce a sparse zero-filled file at an exact byte count, but it requires an administrator-level command prompt and a path that already exists on disk.
A browser-based generator sidesteps that limitation. The Dummy File Generator runs entirely in your browser tab, so there is no installer, no PATH change, and no UAC prompt. You supply a name, a whole-number byte size, and a content policy, and the page builds a Blob with that exact logical byte count, verifies Blob.size against your request, and publishes a download link. The file you receive is a normal file whose byte length matches what you typed; what changes after that — compression, NTFS allocation blocks, deduplication — is outside the generator's control and outside its responsibility.
How to Create an Empty File in Windows Using Your Browser
Use this procedure when you need an exact-byte file on Windows without opening an elevated terminal or installing a command-line tool.
- Open the Dummy File Generator in your current browser tab.
- Enter a safe file name in the name field. The name must be nonempty, free of path separators and control characters, and not a Windows reserved device name such as CON, NUL, COM1, or LPT1.
- Enter an exact whole-number byte size using digits only — no sign, no decimal point, no unit suffix, and no surrounding whitespace. The accepted range is 1 through 52,428,800 bytes.
- Choose a content mode: zero bytes for all 0x00, secure random bytes for incompressible test data, or repeated UTF-8 text for a deterministic pattern you control.
- If you picked repeated UTF-8 text, enter a pattern of at least one character and no more than 10,000 UTF-16 code units. Valid emoji and supplementary characters are accepted.
- Click generate. The page constructs the Blob, validates that Blob.size equals the requested size exactly, and reveals a download link with a summary of the byte policy and content policy.
- Click the download link. The file saves to your browser's Downloads folder under the exact name you entered, with the exact logical byte count you requested.
The whole workflow happens in the current tab, so closing or reloading the page revokes the in-memory ObjectURL. If you edit the name, size, or text, the previous URL is revoked and the previous success state is cleared before the new job starts. To compare approaches for other operating systems, see how to create an empty file in any browser with exact size.
The Three Content Modes and When to Use Each
The generator exposes three content policies. Each one produces the exact byte count you typed, but the resulting bytes behave very differently when downstream tools compress, hash, or archive them. Pick the mode that matches the property you want to exercise.
| Mode | What it writes | Compressibility | Best Windows use case |
|---|---|---|---|
| Zero bytes | Every byte is 0x00, written as bounded Uint8Array parts. | Compresses to almost nothing. | Reproducing a sparse-file condition, testing NTFS compression, or checking that a transfer pipeline reports the logical byte count rather than the compressed size. |
| Secure random bytes | Bytes filled by the browser's Web Crypto getRandomValues API in chunks of at most 65,536 bytes (the documented per-call ceiling). | Effectively incompressible. | Checksum pipelines, hash collision tests, transfer-time benchmarks, and any scenario where the compressed size must match the logical size. |
| Repeated UTF-8 text | Your text pattern encoded as UTF-8 and repeated to fill the request; any remaining bytes that cannot hold a complete code point are padded with ASCII spaces. | Compresses well, but the file remains valid UTF-8. | Reproducing a known textual payload, generating boilerplate for parser tests, and verifying that downstream tools read the file as UTF-8 rather than mojibake. |
The boundary value of 50 MiB equals exactly 52,428,800 bytes because the generator counts bytes in powers of two rather than powers of ten. Multiplying the unit step by step: 50 × 1024 = 51,200 KiB, and 51,200 × 1024 = 52,428,800 bytes. That value is accepted; the next byte, 52,428,801, is rejected with an error. The visible summary reports logical bytes, not filesystem allocation blocks, so a 50 MiB file of zeros can occupy far less physical space once NTFS compression or a transfer tool runs on it.
File Name Safety on Windows: What Gets Rejected
The generator validates names instead of silently sanitizing them. A name that the page accepts is used unchanged as the browser download attribute, so what you see is what Windows sees. The validation rules exist because Windows and NTFS treat several shapes as paths, devices, or invisible formatting rather than as ordinary filenames:
- Empty names, leading or trailing whitespace, and names ending with a dot are rejected.
- Forward slashes, backward slashes, and slash lookalikes from the Unicode range reserved by common file systems are rejected, so a name cannot accidentally turn into directory traversal.
- C0 and C1 control characters, zero-width and bidirectional formatting controls, and Unicode line separators are rejected, which keeps right-to-left override and similar spoofing vectors out of the resulting filename.
- Windows device names — CON, NUL, PRN, AUX, COM1 through COM9, and LPT1 through LPT9 — are rejected, so the generator cannot silently produce a file that conflicts with a reserved device handle.
- Punctuation reserved by common file systems, including characters commonly used for shell redirection or alternate data streams, is rejected.
The accepted name is used verbatim as the download attribute. That attribute is a hint to the browser: if a file with that name already exists in the Downloads folder, or if a Windows policy rejects the name, the operating system may rename the file at save time. That rename is external behavior; the bytes inside the file do not change.
Common Windows Use Cases for Dummy Test Files
Exact-size dummy files show up repeatedly in Windows-side development and operations. A few realistic scenarios:
- Upload limit validation. Confirm that a server rejects attachments above its limit and accepts attachments below it, by stepping through sizes such as 1 MiB, 10 MiB, and the documented maximum.
- Storage quota testing. Reproduce the exact byte count at which a Windows service or shared folder rejects new writes, without hunting for a real document that happens to match.
- Progress indicators and transfer benchmarks. Use secure random bytes (which compress poorly) to measure real transfer time and progress-bar updates, rather than letting a compressed stream make the upload look faster than it is.
- Checksum pipelines. Pipe a known random dummy file through SHA-256 or another hash and confirm the checksum pipeline reports a stable value when the bytes are unchanged and a different value when they differ.
- Application error messages. Force a parser to display a "file too large" or "unsupported type" error by feeding it a file whose name uses a familiar extension but whose contents are zeros, random bytes, or repeated text.
Two practical warnings apply regardless of the mode you pick. First, a 50 MiB dummy file still consumes real memory in the tab while it is being built and held as an ObjectURL, so avoid generating many large files in parallel tabs. Second, do not use generated files to bypass service limits, exhaust someone else's storage, or probe systems you do not own or have authorization to test — the tool is for reproducing a file-size condition in your own development environment, not for stress-testing third parties.
What the Tool Does Not Produce
The generator creates raw test bytes; it does not produce a valid PNG, PDF, ZIP, MP4, executable, or any other semantically valid format merely because the name ends with that extension. A file named report.pdf built from zero bytes will not open as a PDF; an executable will not run. If you need a structured test fixture, use a tool that builds real format bytes — for example, the JSON Formatter for JSON-shaped payloads, a UUID Generator for identifier fixtures, or the ASCII Table reference for plain 7-bit text.
The tool also does not retain a seed for random mode, so it cannot reproduce the exact same random file later. It is not a password generator, encryption system, secure erasure tool, key derivation function, or proof that downloaded bytes stay secret after sharing. Treat random dummy files as test data only.