Androidのストレージを埋め尽くしてくれという要望?にお答えして
指定サイズのダミーファイルを作成するコードを書いてみました。
忘れないうちにメモしておきます。
private static final int KB = 1024; private static final int MB = 1024 * MB; private long available; // 空き容量 private long used; // 使用中 private long size; // 最大容量 /** * 内部ストレージの状態を調査する */ public void getInternalStorageStatus() { File path = Environment.getDataDirectory(); StatFs stat = new StatFs(path.getPath()); available = stat.getAvailableBlocks() * stat.getBlockSize(); size = stat.getBlockCount() * stat.getBlockSize(); used = maxSize - availableInternalStorage; } /** * 指定サイズ(MB単位)のファイルを内部ストレージへ保存する * @param long MBでファイルサイズを指定(1MBのファイルなら1と指定) * @return true 保存成功 */ public boolean saveFileToInternalStorage(long fileSizeMB) { // 保存可能領域が足りない if(fileSizeMB > available / MB) { return false; } // 1MB分の文字列生成 char[] chars = new char[1 * MB]; Arrays.fill(chars, 'x'); String mbString = new String(chars); // ファイル保存開始 try { FileOutputStream fos = openFileOutput("dummy.txt", MODE_PRIVATE); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos)); for(int i = 0; i < fileSizeMB; i++) { // 文字列の書き込み bw.append(mbString); bw.flush(); } bw.close(); fos.flush(); fos.close(); } catch(Exception e) { e.printStackTrace(); return false; } return true; }こんな感じで、ストレージを埋め尽くすアプリを作っておりました。 アプリはこちらからFill Storage - Google Play
0 件のコメント:
コメントを投稿