INASOFT 管理人のひとこと


フリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。
2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。
・INASOFT Webサイト: https://www.inasoft.org/
・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/
本業の方のお仕事が再び忙しくなりつつあるので、断続的にしばらく更新が止まることがあります。

目次 | ←前へ / 2016-05-01 00:20 / 次へ→ / 最新へ⇒

■「いじくるLite ver.0.93β」更新のお知らせ。タイムスタンプ変更機能の追加

2016/ 5/ 1 0:20:42


RSSRSS配信中

https://www.inasoft.org/








いじくるLite ver.0.93β」を公開しています。

ダウンロードはトップページからどうぞ。

今回は、急に作者の需要を思い出したことを受けまして、ファイル/フォルダのタイムスタンプの変更機能を復活させています。

「いじくるつくーる」の時は、ファイルのタイムスタンプしか変更できなかったのですが、今回はフォルダのタイムスタンプも変更できるようにしました。

rnsflite_ss_093.png

.NET Frameworkを使うと、ここら辺が比較的容易に実現できるので。

なお、「いじくるつくーる」の頃は、エクスプローラで複数のファイルを選択して日時の変更を呼び出すと、それらをまとめて1つのダイアログで変更できましたが、今回「いじくるLite」では複数個のダイアログが立ち上がるようになっています。

これは単に、.NET Framework を使ったときに、「いじくるつくーる」と同様の動きを実現する方法がパッと思い浮かばなかったことが原因で、前の方法が不満だったからというわけではありません。良い方法が見つかれば前の方法に戻しますし、それまでにこのままでもイイかなぁという考えに至れば、このままにしようかと思います。

ちなみに今回は、フォルダも日時変更の対象にできることになりましたので、フォルダ内のファイルまたはサブフォルダも再帰的に日時変更をする機能を付けるかどうか・・・自分の中の需要と相談しながら決めたいと思っています。


ちなみに今回は、日時の変更フォームに、DateTimePickerを使っています。

rnsflite_ss_093a.png

rnsflite_ss_093ab.jpg

ただ、DateTimePickerにミリ秒を表示・編集させる方法がよくわからなかったので、ミリ秒の位についてのみ、専用の編集ボックスを設けています。

ただ、DateTimerPickerは、ミリ秒を表示しないだけで内部的に保持していますから、このままだとDateTimePickerが持つミリ秒と、編集ボックスのミリ秒が衝突します。

正確には、Dateクラスの特定の要素(年・月・日・時・分・秒・ミリ秒)のみを直接変更することができないので、DateTimePickerで編集した結果に編集ボックスのミリ秒を適用させるときは、AddMilliseconds() を使うのですが、DateTimePickerが内部的にミリ秒を保持していると、「内部的に保持しているミリ秒+編集ボックスのミリ秒」が最終的なミリ秒になってしまいます。

そこで、DateTimePickerに初期設定する日時については、

 dtpCreateFileTime.Value = dtCreateFileTime.AddMilliseconds(-dtCreateFileTime.Millisecond)

という、一見訳の分からない式を入れています。

(ReadOnlyなdtpCreateFileTime.Millisecondを0にするために、現在のMillisecondメンバ変数の内容で引き算した結果を再代入している)

なんかこう、ミリ秒の単位だけを0にする、シンプルかつエレガントな方法があればいいんですけど、何か良い方法をご存じの方はいらっしゃいませんか?



目次 | ←前へ / 2016-05-01 00:20 / 次へ→ / 最新へ⇒


目次の表示:


ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメールフィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。
当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。本ページは公開から1年半後の任意のタイミングで削除される予定です。




2558699 (+0326)[+0651]

Copyright© 2010-2021 INASOFT