myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

Delete Old Backup

Softimage の バックアップシステムって結構便利ですよね。自分はデフォルトの数値を上げて、細かくバックアップするようにしています。

しかし、何週間も同じプロジェクトを毎日いじっていたらこのバックアップフォルダーの数が半端なく多くなってしまいます。無駄に容量を食ってるし、管理しにくいし、バックアップフォルダーも分かりづらいですね。

でも、1週間前のバックアップは要らないじゃん。や、3日前のバックアップも要らないじゃない。(手動)インクリメンタルセーブもしていますし。

なので、スクリプトで自動的に削除されるようにしてみました。

スクリプトの内容:

現プロジェクトの全バックアップ内のファイルの中で一番新しい更新日時を取得します。
最後更新日時 から 指定した日数 (デフォルト3日)以前のフォルダを削除します。

という単純なスクリプトです。
※ 注意:このスクリプトで削除されたファイルはゴミ箱に移動せずに削除されます。
ゴミ箱に移動するコマンドの場合はどうしてもconfirm boxが出てくるから嫌だ。全て消すのみ!

以前の記事に書いたイベントスクリプト を使って「siOnChangeProjectEvent」 「siOnEndSceneOpenEvent」 とか に入れて、プロジェクトが変わる時やシーンを開く時に自動に実行させることも出来ます。

例:俺のPrefファイル 「siOnEndSceneOpenEvent」に入れています。(シーンを開くたびに実行されます。あんまり重くないので特に影響がないと思います。)

まぁ、良かったら好きに使ってください:

'パスを指定する (デフォルトは現プロジェクト)
dim sPath : sPath = ActiveProject2.Path + "\backup"
DIM FSO : SET FSO = CreateObject("Scripting.FileSystemObject")

if FSO.FolderExists(sPath) then
'日数を指定する (「最終更新日時 - 日数」 以前のファイルが消されます)
dim days : days = 3
DIM BkFolder : set BkFolder = FSO.GetFolder(sPath).SubFolders

'サブフォルダの中のファイルの最終更新日時を取得
' ※ なぜかファイルとフォルダの最終更新日時がマッチしない場合もあるので
' ファイルの更新日時でチェックするようにしました。
for each BksubFolder in BkFolder
for each BkFile in BksubFolder.Files
If lastdate = "" Then
lastdate = BkFile.DateLastModified
elseif BksubFolder.DateLastModified > lastdate Then
lastdate = BkFile.DateLastModified
end if
next
next

'最終更新日時 - [days] 以前のファイルを削除
for each BksubFolder in BkFolder
for each BkFile in BksubFolder.Files
if lastdate - BkFile.DateLastModified > days Then
FSO.DeleteFolder BksubFolder
'logmessage BksubFolder
exit for
end if
next
next

'バックアップフォルダ整理:

LogMessage "Backup Folders previous to " & lastdate - days & "has been deleted."
end if

2011.11.29 : 19:14

俺のPrefファイルにタイピングエラーがありました。

修正したファイルをアップしなおしましたが、一応エラーの報告です:


function siOnEndSceneOpenEvent_OnEvent( in_ctxt )

のところに

function siOnEndSceneOpenEvent( in_ctxt )

になっていましたので、シーンを開く時にXSIがこのFunction見つかれなくてエラーが出ていました。

Comments

Post a comment


Only the blog author may view the comment.

Trackbacks

Trackbacks URL
http://myara.blog.fc2.com/tb.php/39-740615b1
Use trackback on this entry.