private static boolean doRemove(String[] args) {
        if (args.length != 1) {
            printUsage(PROGNAME);
            return false;
        }
        final File targetFile = new File(args[0]);
        final RandomAccessFile targetRaFile;
        try {
            targetRaFile = new RandomAccessFile(targetFile, "rw");
        } catch (FileNotFoundException e) {
            System.err.println("対象ファイルが開けません: " + targetFile.getPath());
            return false;
        }
        try {
            final ObbInfoV1 obbInfo;
            try {
                obbInfo = ObbInfoV1.fromFile(targetRaFile);
            } catch (IOException e) {
                System.err.println("対象ファイルの読み取りに失敗しました: " + targetFile.getPath());
                return false;
            } catch (NotObbException e) {
                System.err.println("対象ファイルは OBB 情報を保持していません: " + targetFile.getPath());
                return false;
            }

            final ByteBuffer obbInfoBytes = obbInfo.toBytes();
            targetRaFile.setLength(targetRaFile.length() - obbInfoBytes.remaining());
        } catch (IOException e) {
            System.err.println("OBB 情報の削除に失敗しました: " + targetFile.getPath());
            return false;
        } finally {
            try {
                targetRaFile.close();
            } catch (IOException e) {
                System.err.println("OBB 情報の削除に失敗しました: " + targetFile.getPath());
                return false;
            }
        }

        System.err.println("OBB 情報の削除が正常に完了しました: " + targetFile.getPath());
        return true;
    }