← All tools

NeilJustice/FileArb

Popularity 75 Updated Development & Build

FileArb is a C++ command line program for quickly creating an arbitrary number of text files or binary files containing an arbitrary number of characters or bytes.

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

<p align="center"<img src="Screenshots/FileArbLogo.png" width="64%"<br</p

|Build Type|Build Status| |----------|------------| |Clang 18 and GCC 13 on ubuntu-latest|<a href="https://github.com/NeilJustice/FileArb/actions/workflows/linuxbuild.yml"<img src="https://github.com/NeilJustice/FileArb/actions/workflows/linuxbuild.yml/badge.svg"</a| |VS2026 on windows-2025-vs2026|<a href="https://github.com/NeilJustice/FileArb/actions/workflows/windowsbuild.yml"<img src="https://github.com/NeilJustice/FileArb/actions/workflows/windowsbuild.yml/badge.svg"</a| |GCC lcov code coverage|<a href="https://codecov.io/gh/NeilJustice/FileArb"<img src="https://codecov.io/gh/NeilJustice/FileArb/graph/badge.svg?token=4PPGGBZXES"</a|

FileArb is a C++ command line program for quickly creating in parallel an arbitrary number of arbitrarily large text files or binary files.

Three use cases for FileArb:

  • Performance testing the write speed of storage hardware such as USB drives, NVMe drives, and network file shares.
  • Performance testing file-I/O-intensive programs such as <a href="https://github.com/NeilJustice/FileRevisor"FileRevisor</a.
  • Learning the file write performance differences between Linux filesystems such as Btrfs versus F2FS versus XFS.
  • FileArb command line usage
  • FileArb program modes
  • create-binary-file
  • create-binary-files
  • create-text-file
  • create-text-files
  • Steps to build binary filearb on Linux with Clang
  • Steps to build FileArb.exe on Windows with Visual Studio 2026
  • Acknowledgements

FileArb command line usage

FileArb v1.1.0
Optional suffixes for --bytes arguments: b or B, k or K, m or M, and g or G.

Usage:
   filearb create-binary-file
      --target=<DirectoryPath>
      --bytes=<NumberOfBytes>
      [--random-bytes]
   filearb create-binary-files
      --target=<DirectoryPath>
      --directories=<NumberOfDirectories>
      --files=<NumberOfFiles>

[--random-bytes] [--parallel] [--quiet] filearb create-text-file --target=<DirectoryPath --lines=<LinesPerFile --characters=<CharactersPerLine [--random-letters] filearb create-text-files --target=<DirectoryPath --directories=<NumberOfDirectories --files=<FilesPerDirectory --lines=<LinesPerFile --characters=<CharactersPerLine [--random-letters] [--parallel] [--quiet]


## FileArb program modes

### create-binary-file

filearb create-binary-file --target=<DirectoryPath --bytes=<NumberOfBytes [--random-bytes]


`create-binary-file` creates in a specified `--target` directory a file named `binaryfile.bin` containing `--bytes` number of binary 0 bytes.

Console output for `filearb create-binary-file --target=. --bytes=2G` on Linux:

![create-binary-file example on Linux](Screenshots/Linux/create-binary-file.png)

Console output for `FileArb.exe create-binary-file --target=. --bytes=2G` on Windows:

![create-binary-file example on Windows](Screenshots/Windows/CreateBinaryFileConsoleOutput.png)

![create-binary-file Windows Explorer](Screenshots/Windows/CreateBinaryFileWindowsExplorer.png)

--random-bytes can be specified to create a binary file containing pseudorandom bytes sampled from std::randomdevice.

Here are the contents of one potential random binary file after running filearb create-binary-file --target=C:\FileArbTesting --bytes=64 --random-bytes:

create-binary-files

filearb create-binary-files
   --target=<DirectoryPath>
   --directories=<NumberOfDirectories>
   --files=<NumberOfFiles>
   --bytes=<BytesPerFile>
   [--random-bytes]
   [--parallel]
   [--quiet]

create-binary-files creates in a specified --target directory a specified number of --directories each containing a specified number of --files each containing --bytes number of 0 bytes or [--random-bytes].