[バージョン]
FILETIME Extractor (fte) v1.3
[ライセンス]
GPL (v3)
[動作環境]
Windows 2000/XP/2003/Vista/2008/7
(*32/64bit版両方で動作します)
[基本的な使い方]
> fte.exe ファイル名
指定ファイルのタイムスタンプを標準出力に表示します。
[オプション]
[特徴]
[制約]
[注意]
こちらの環境で確認した限りでは、Unix系ファイルシステム上のファイルのタイムスタンプをネットワーク経由で参照すると
ctimeは本来の値ではなくmtimeと同じ値にセットされていました。crtimeはファイルによってmtimeと同じ場合もあれば
atimeと同じ場合もありよくわかっていません。また、ファイル共有サーバの実装によっては正しい値を返すかもしれません。
[ファイル名]
fte_1.3.zip (MD5: 3454b464b4f5e37afcb5b0be8ee2fb0c) - バイナリ
fte_1.21.zip (MD5: ccdf8e8937b9e430cc7f8c73f2d1b0d5)
fte_1.3_src.zip (MD5: b8a7bccb074a4492eb28ee87605121a9) - ソース
fte_1.21_src.zip (MD5: 5738e453f8f168e8be5b8b74101a4fd5)
(追記: 2009/12/02)
早速CCIさんからフィードバックもらい微修正しました。ありがとうございます。
(追記: 2009/12/05)
コメントをいただきVista以前の環境でも動かせるようになりました。ありがとうございます。
[Note]
2010/04/18: オブジェクトIDのパース処理を追加(1.3)
2010/01/03: ワイルドカード処理の不備を修正(1.21)
2009/12/14: ワイルドカード、-rオプション、型推測処理を追加(1.2)
2009/12/05: 2000/XP/2003に対応(1.02)
2009/12/02: -lオプションの処理を修正(1.01)
2009/12/01: とりあえず公開(1.0)
| Attachment | Size |
|---|---|
| fte_1.21.zip | 54.43 KB |
| fte_1.21_src.zip | 34.22 KB |
| fte_1.3_src.zip | 35.14 KB |
| fte_1.3.zip | 54.16 KB |
コメント
XP/2003用にWin32 FileID API
XP/2003用にWin32 FileID API Libraryを使ってはどうでしょうか
http://www.microsoft.com/downloads/details.aspx?FamilyId=1DECC547-AB00-4...
_WIN32_WINNTを低めに設定してwinbase.hで定義されないようにすればコンパイル通りました
手元では動いてるようです
kazamiya
コメントありがとうございます。
こういうライブラリがあるのは初めて知りました。こちらの定義を変えておけば、XPなどでも追加ライブラリで動かせるということなんですね。早速採用させていただこうと思います。
cci
以下の部分みたいです。CR/LFであれば終端文字にする、という修正でどうでしょう?
// chomp CR/LF
buf[strlen(buf)-1]='\0';
FILETIMEExt(buf);
kazamiya
確認したところ少し前のソースとバイナリをあげていました。。早速修正版をUPしましたので前のは消去しちゃってください。
改行コードがCR/LFかLFだとうまく動くと思います。fgetsはCR onlyだと区切ってくれないようで、そこを直すのは面倒なので後回しにします。
kazamiya
む、早速ありがとうございます。確認してみます。
まさにそこは面倒なので手抜き実装したところです..自分の環境ではSJIS+CR/LFでたいてい動いていたんですが、改行コードはそれ以外だったりしませんかね。
どちらにしてもどの改行文字でも対応できたほうがいいのでTODOに入れておきます。
# プログラミングスキルに乏しいのですぐ直せる自信がありません..w
cci
zakiさん、フィードバック返しします。
-lオプションで、例えば以下のパス情報を含むテキストファイルを食わせると、「Can't open C:\config.sy, CODE=2:指定されたファイルが見つかりません。」と言われます。
C:\autoexec.bat
C:\config.sys
おそらくうっかり系の問題のようですが・・環境はWindows 7 Ultimateです。