サイズを指定してフアイルを作る方法
システム開発をしていると、ファイルサイズを指定してダミーファイルを作成して、境界値テストやディスク容量枯渇時の動作検証をやる時があり、これを使うと準備が簡単にできます。この記事では、そんなファイルの作り方を紹介します。
境界値テスト用に指定のサイズのファイルを作成したい時
システムを開発していると、入力するファイルのサイズの上限を設定することがあります。
その場合、例えば上限を1メガバイトまでという仕様にしたとします。システムの動作テストでは、1メガバイトのファイルは正常、1メガバイトを1バイトでも超えた場合はエラーになることを確認しなければなりません。
なにげにぴったりサイズのファイルを作成するのは難しいです。数バイトならテキストエディタで作れなくもないですが、サイズが大きくなると作れないことはないですが、手間がかかりますが、これを使えば一瞬で指定のサイズのファイルが作成できます。
ディスクの空き容量をなくしたい時
こちらもシステム開発のテストシーンで、ディスクが空き容量がなくなった時にもきちんと動作するか検証することがあります。この時、やはりハードディスクやSSDの空き容量をすべてぴったり使い切るためにファイルを手作りするには大変な労力が必要です。
これを使えば、30秒でディスクを使い切ることができるでしょう。このあとの実用編でやり方を紹介します。
ファイルサーバの空き容量を確保しておきたい時
学校や会社などではファイルサーバを使っていることが多いと思います。自分は節約して使っているつもりでも、そんなことお構いなしで、ぼこぼこと大きなファイルをどんどん作ってはファイルサーバに格納する人がいます。
いざ自分が大きなファイルを格納しようとしたら、空き容量がなくなっていて保存できなかった・・・ということはありませんか?
そんな時は、これで大きなファイルを作って予約しておきましょう。あまり派手にやると管理者から怒られてしまうので気をつけてください。
作り方
Windowsの場合
作成方法
fsutilコマンドを使います。
> fsutil file createnew ファイル名 サイズ(Byte)
例えば、1MBのAAA.txtというファイルを作成したい場合は、1MB=1024KB=1048576Byteなので、次のように指定すれば作成できます。
> fsutil file createnew AAA.txt 1048576
確認方法
コマンドプロンプトの場合は、dirコマンドで確認できます。
F:\work>dir
ドライブ F のボリューム ラベルがありません。
ボリューム シリアル番号は 6E94-BCBC です
F:\work のディレクトリ
2020/05/14 22:50 <DIR> .
2020/05/14 22:50 <DIR> ..
2020/05/14 22:50 1,048,576 AAA.txt
1 個のファイル 1,048,576 バイト
2 個のディレクトリ 161,252,085,760 バイトの空き領域
エクスプローラーでも作成したファイルのプロパティを確認できます。サイズぴったりで作れてますね。
Linuxの場合
作成方法
fallocateコマンドを使います。
$ fallocate -l サイズ ファイル名
例えば、1MBのAAA.txtというファイルを作成したい場合は、1MB=1024KB=1048576Byteなので、次のように指定すれば作成できます。
確認方法
ファイルの確認は、ls -l を実行します。
$ fallocate -l 1024 AAA.txt
$ ls -l
合計 4
-rw-rw-r-- 1 battan battan 1024 5月 15 08:57 AAA.txt
実用例
よく使うファイルサイズ
Windowsのfsutilコマンドでは、バイト数でしかサイズ指定ができないので、いくつかよく使いそうなサイズをメモしておきます。
- 1KB:1024
- 1MB:1048576
- 1GB:1073741824
これ以外のバイト数が知りたい!という場合は、Google検索で単位変換可能なのでそちらでバイト数がわかります。
さすがGoogle先生。なんでも知ってる。これは1メガは何バイトか?という問い合わせです。このリンクで移動したあと調べたいサイズに変更してみてください。
ディスクを使い切る
ディスクの空き容量を確認し、そのサイズのファイルを作成することで、ディスクをすべて使い切ることができます。
大きいファイルや小さいファイルのコピーを繰り返してぴったり埋めようとするとかなりの手間と時間を要しますが、このコマンドだとぴったり使い切ることができます。しかも、どんなに大きいファイルでも一瞬で作成できます。
> fsutil file createnew spacer.txt 161252085760
コメント