time stamp の変更

tbasicが1.60になりました。これを機会にそのsamplesとして,いくつかのプログラムを作りました。ここではその一つを紹介します。プログラムの名前は,「Time Stamp Changer」で,ファイル名は「tsChanger.tbt」です。tbasic set 1.60 のsamples\Advancedの中にあります。

このプログラムの目的はファイル,フォルダーのtime stamp を変えるものです。
ファイルやフォルダーにはtime stampと言った3種類の性質があります。「作成時刻,更新時刻,最終アクセス時刻」です。これらの性質は,ファイルの使用状況を示すもので,ファイルを右クリックして,表示させるプロパティでそれを見ることができます。
そしてこれは本来の性質上,変更すべきものではありません。

しかし,時には変更したい場合があります。これはそのような時のためのツールです。

time stampの変更は,よく使われる一般的機能なので,特別なものではありません。標準的なプログラミング言語で実現できると思います。また,プログラミング言語を使わなくても,Power Shellでも実現できます。
実はまた,tbasicでも,1.50で,「SetCreationTime,SetLastWriteTime, SetLastAccessTime」をサポートしましたので,この時点で,tbasic でも可能でした。
プログラムを書くのであれば,特定のファイルのtime stamp変更は数行で可能です。

今回1.60を機会にこのプログラムを作ったのは,機能と言うより,操作性を重視してツールとして作ったものです。tsChanger.tbtを起動すると次の画面になります。

フォルダ参照またはファイル参照をクリックして目的のファイルを確定します。
参照をクリックすると,例えば,次のような選択画面がでます。

確定すると,次の画面が出ます。そこで変更したい時刻を設定して,目的とするボタンを押すと,設定できます。例えば,次のようになります。

このように,ファイルの選択,設定等視覚的に,簡単にできます。tbasicでのコントロール画面の機能をフルに使ったものです。ver. 1.60で,コントロール画面の機能を少し強化し,それを使いました。

プログラムは全体で,約250行で,殆どがコントロール画面設定の部分です。

少数のファイルが対象なら,このままで十分に目的が果たされます。また,必要に応じてこのプログラムを変更すれば色々機能を追加することができます。

興味のある方は実行してみてください。

このプログラムの実行時の注意をあげます。
・使用中のファイルやフォルダの time stampは変更できません。
・ファイルですと開いているものなどです。
・フォルダの time stamp の変更は少し微妙です。
フォルダが使用中と言うことは,そのフォルダ下にあるファイルが使用中ということです。たくさんのファイルやフォルダを含むフォルダの場合,その中にあるファイル等が一つでも使われていると変更できなくなります。