タスク: アップデート後のシステムファイルの自動整理機能
これまでのCWPyのアップデートでは、存在していたファイルが無くなるという事はありませんでした。そのため、アーカイブを展開して上書きするだけで完全なアップデートができていたのですが、2α2以降はそうもいかなくなります。
- すでにWSN標準素材のフォルダ移動が起きています。
- スキンのアップデートであったファイルが消える事があるかもしれません。
ユーザに対して「新しくアーカイブを展開した先にScenario
とYado
とSettings.xml
を移して……などしてください」というのはいかにも筋が悪いので、不要になったファイルを自動的に整理する機能が必要になります。
今のところ、Data/UpdateInfo.xml
と<Skin>/UpdateInfo.xml
のような情報ファイルを作って、その中に削除するべきファイルの情報を書いておき、起動時に削除を実行するという方法を考えています。
削除するファイルは1つのフォルダにまとめてゴミ箱に放り込むようにすれば、より安全でしょう。
Comments (7)
-
-
reporter 基本的に移動・削除するファイルを書く事になるので、元々アーカイブに含まれないファイルが消える事はあまり無いはずです。過去に存在したファイルと同名だと消えるかもしれません。それを防ぐために、ファイルのハッシュ値のチェックもするべきですね。ハッシュチェックはファイル差し替えへの対応にも使えます。
自分で付属ファイルを管理したいという事もあるでしょうから、この機能が動かないようにするオプションもつけた方がよさそうです。
-
reporter pull request #1733で
Data/UpdateInfo.xml
を実装しました。スキンでも、
Skin.xml
と同じフォルダに同書式のUpdateInfo.xml
を置く事で同様に自動整理が行われます。moveto
などのファイルパスの指定はスキン内の相対パスで行ってください。 -
reporter この機能が動かないようにする設定は、普通は触れる事はないはずなので、隠し設定として持つようにしています。
Settings.xml
に<AutoUpdateFiles>False</AutoUpdateFiles>
という行を追加すると、この機能は動かなくなります。 -
updateinfoがあってBgmAndSoundディレクトリが無い場合に起動できずにエラーが出るようなのですが、 これ構造的にヤバくないです?
File "cw\update.pyo", line 61, in update_files File "shutil.pyo", line 302, in move File "shutil.pyo", line 130, in copy2 File "shutil.pyo", line 83, in copyfile IOError: [Errno 2] No such file or directory: u'Data/Materials/Wsn.2/BgmAndSound/l_rain.ogg' Traceback (most recent call last): File "cw\frame.pyo", line 488, in OnDestroy AttributeError: 'NoneType' object has no attribute '_running'
-
reporter pull request #1743
構造はやばくないです。単なるバグです。直しました。ご報告ありがとうございます。
-
reporter - changed status to resolved
実装済みなので完了にします。
- Log in to comment
自分のようにスキンの効果音を本体に移動してる場合はどうなんでしょう?