ファイルを300Mb弱ずつに分割するソフト作成 1日目

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by MoNoQLoREATOR » 12年前

SkyDriveというクラウドサービスはご存知でしょうか?
あそこの場合、1つのファイルサイズは300Mbまでという決まりになっていて、どうにかしないといけない事になったわけですね。
で、真っ先に思いつくのはZIP圧縮などで分割圧縮することなのですが、選択肢で20Mbの次が500MBとかいきなりインフレするわけですよ。
さすがに20Mbずつの分割だとファイル数がすさまじいことになってなんとなく嫌ですし(まあ、選択肢はアーカイブソフトによってそれぞれなのかもしれませんが)。
解凍がちゃんとできなかったりした経験があるから、何というか信用ならないわけですよ。
ということで分割(そして接着)するソフトを自分で作ろうと思ったわけですね。

概要:
①ファイルを指定して分割命令を出すと指定ファイルと同じ名前のフォルダを作り、
  その中に「元々のファイル名Noインデックス番号.slc」という名前で分割ファイルを作成してくれる
②その際、「元々のファイル名.bnd」というファイルも作成される
③.bndファイルを指定して接着命令を出すと分割ファイルを元に戻してくれる

で、やってみたわけですが、プログラムが応答しなくなるんですよね~。
それと.bndファイルは作成されるけど中身が書き込まれないという謎の結果…。
明日からデバッグですね。
一応プロジェクトフォルダごとソースコードを公開しておくので興味があればご覧ください。
プロジェクトフォルダ※VC++2008用プロジェクトです※firestrageへジャンプします
ちなみに完成したら例のごとく完成品とそのソースコードをプロジェクトフォルダごと公開します。
オープンソースの文化がもっと広まればいいなということでまずは自分からそうしてゆくことにしました。

で、バグの原因の推測をしてみました。
マルチスレッドにしてるんですけれどとりあえずそれが怪しいかな、と。
バイナリファイルを扱う自作クラスを使っているのですがこれをインスタンス化しているはずなのにポインタが不適切なPtrとか表示されてるんですよね(デバッグ画面では)。よくわかりません。
あとはファイル名やパスを決定している部分のソースコードがゴチャゴチャしてて私自身が見てもパッとわからんからそこで何かミスってるのかも。
どっちみち、そこは綺麗に直さないといけないことにかわりはありませんが。
てか、小まめにデバッグしながら少しずつ書いてゆくべきですよね。
どうして私はいつも一気に書いて一気にデバッグしようとするんでしょうね。

そんなわけで今日のところはこれでおしまいです。
では、良いプログラミングライフを!

ISLe
記事: 2650
登録日時: 14年前

Re: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by ISLe » 12年前

オープンソースならsplitコマンドですかね。
Cygwinにも入ってますし。

ご存知かもしれませんが、ウェブからアップロードする場合のファイルサイズ上限は300MBですけど、クライアントインストールしてローカルドライブと同期する場合は2GBです。

アバター
tk-xleader
記事: 158
登録日時: 14年前

Re: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by tk-xleader » 12年前

DGCAというアーカイバはどうでしょうか。これなら、修復符号つきで分割ファイルサイズも自由に選択することができます。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by softya(ソフト屋) » 12年前

私は7zで分割しますね。圧縮と分割が一度にできるし、解凍するときに整合性のチェックもしてくれます。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

Re: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by MoNoQLoREATOR » 12年前

わおっ!予想以上の返信にびっくり仰天中のモノクロです。ありがとうございます。

>>ISLeさん
なるほど、その手がありましたね。
私はもうLinuxは使ってないのですが、Windowsでも可能になるソフトがあるようですね。
Cygwin以外にもgnuwinなるものがあったり…。どういった代物なのかよくわかりませんが…(そもそもソフトウェア?)…ちょっと調べてみます。
それと、2GBの件は知りませんでした。
まあ、どの道アップロードしたいファイルが2GB以上なので分割はしないといけないのですけれど。

>>tkさん
さっそく試してみますね!……と思ったのですが「ファイルが展開できません」と言われてインストールできないというこの災難…。一度再起動してみます。

>>ソフト屋さん
7zの規格がどう定義されているかどうかは私は知らないのですが、少なくともLhaForgeというアーカイブソフトでは7zでの分割圧縮を行わせるボタン等は見つかりませんでした。
7zだけではなくて、JACK分割以外の分割をLhaForgeはサポートしていないのだと思います。
JACK分割すらも失敗していますが…。
最後に編集したユーザー MoNoQLoREATOR on 2013年1月07日(月) 23:06 [ 編集 1 回目 ]

アバター
tk-xleader
記事: 158
登録日時: 14年前

Re: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by tk-xleader » 12年前

7zは、http://sevenzip.sourceforge.jp/ このアーカイブソフトを用いて操作するファイルです。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

Re: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by MoNoQLoREATOR » 12年前

あ、私は少し勘違いをしておりました。
私はファイル形式の種類として7zという言葉を使っていましたがファイル形式の名称自体は7-zipなのですね。
対して7zはソフトウェアの名前ですね。

アバター
tk-xleader
記事: 158
登録日時: 14年前

RE: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by tk-xleader » 12年前

MoNoQLoREATOR さんが書きました:あ、私は少し勘違いをしておりました。
私はファイル形式の種類として7zという言葉を使っていましたがファイル形式の名称自体は7-zipなのですね。
対して7zはソフトウェアの名前ですね。
 いや、元の理解であってます。7-Zipがアーカイバソフトの名前で、7zがファイル形式の名前です。
最後に編集したユーザー tk-xleader on 2013年1月09日(水) 09:14 [ 編集 1 回目 ]

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by softya(ソフト屋) » 12年前

すいません混乱させて。
ツール名 7-Zip
exeファイル名 7z.exe
圧縮拡張子 xxx.7z
となっております。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

Re: ファイルを300Mb弱ずつに分割するソフト作成 1日目

投稿記事 by MoNoQLoREATOR » 12年前

わーお。カオス状態ですね。私もちゃんと調べずに推測だけで物を言うからこんなことに…orz
それはそうと、DGCAを使ってみました。
分割サイズを自由に設定できて良いですね。
ただ、分割前のファイルと分割→結合した後のファイルを比べるとサイズが増えているのが少し気になりますが一応今のところ不具合はないので分割したい時はこのソフトを使おうとおもいます。
ちなみにslice300Mbの方も、自作クラス・関数の思わぬバグを発見できるかもしれないのでデバッグ自体は続けます。