★★★ Twitterやってます。フォローして頂けると嬉しいです(*^^*) ★★★
この記事にはプロモーションが含まれていることがあります

サイズを指定してファイルを作る方法

IT
スポンサーリンク

サイズを指定してフアイルを作る方法

システム開発をしていると、ファイルサイズを指定してダミーファイルを作成して、境界値テストやディスク容量枯渇時の動作検証をやる時があり、これを使うと準備が簡単にできます。この記事では、そんなファイルの作り方を紹介します。

どんな時に使う?
  1. 境界値テスト用に指定のサイズのファイルを作成したい時
  2. ディスクの空き容量をなくしたい時
  3. ファイルサーバの空き容量を確保しておきたい時

境界値テスト用に指定のサイズのファイルを作成したい時

システムを開発していると、入力するファイルのサイズの上限を設定することがあります。

その場合、例えば上限を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
Linuxではサイズの単位が指定できます

Linuxのfilelocateコマンドでは、ファイルサイズの数値の後ろに単位を指定できますので、1メガバイトのファイルを作る場合は、1mと指定することが可能です。

$ fallocate -l 1m AAA.txt
$ ls -l
合計 1024
-rw-rw-r-- 1 battan battan 1048576  5月 15 08:59 AAA.txt
  • 1m:1メガバイト
  • 1g:1ギガバイト

これより上のテラやペタなども指定できるようですが、うちにはそんな大きなドライブが無いのでギガまでしか確認できておりませんm(_ _)m

スポンサーリンク

実用例

よく使うファイルサイズ

Windowsのfsutilコマンドでは、バイト数でしかサイズ指定ができないので、いくつかよく使いそうなサイズをメモしておきます。

  • 1KB:1024
  • 1MB:1048576
  • 1GB:1073741824

これ以外のバイト数が知りたい!という場合は、Google検索で単位変換可能なのでそちらでバイト数がわかります。

さすがGoogle先生。なんでも知ってる。これは1メガは何バイトか?という問い合わせです。このリンクで移動したあと調べたいサイズに変更してみてください。

1メガは何バイト - Google 検索

ディスクを使い切る

ディスクの空き容量を確認し、そのサイズのファイルを作成することで、ディスクをすべて使い切ることができます。

大きいファイルや小さいファイルのコピーを繰り返してぴったり埋めようとするとかなりの手間と時間を要しますが、このコマンドだとぴったり使い切ることができます。しかも、どんなに大きいファイルでも一瞬で作成できます。

> fsutil file createnew spacer.txt 161252085760

ディスクの目次だけ書き換えるので高速で、実際に全領域にデータの書き込みは行わないのでSSDを無駄に痛めないメリットがあります。

スポンサーリンク

もっとWindowsのコマンドを知りたい

おすすめ書籍の紹介コーナー

WindowsはGUIだけで操作できますが、コマンドが使えるようになるとGUIではできないこともできるようになりますので、コマンドやPowerShellを知っておくと、より効率よく、便利にWindowsが使えると思います。

Windowsの標準コマンドでは物足りなくなってしまった方、もっとこんなことコマンドでできないの?
そんな時は、PowerShellに手を出してみてください。Linuxのシェルのようなことが簡単にできるようになります。

コメント

タイトルとURLをコピーしました