7

特定のファイルのライブリロードを実装したい。どういうわけか、ファイルの最終変更時刻を読み取ることができると思います。これは、そのファイルを最後にロードしたときと比較できます。私は後者を記憶に留めておきます。

特定の時間以降にファイルが変更されたかどうかを確認するにはどうすればよいですか?このソリューションは、Windows、Mac、およびLinuxで機能するはずです。

更新:私の質問はいくつかの誤解を引き起こしたようです。考えを明確にするために、私はファイルが一般的に変更されたかどうかを調べることについて質問しています。最後に変更された時間を使用することが最初に頭に浮かんだのですが、他の解決策にも心を開いています。残念ながら、ビデオゲームのすべてのテクスチャについて話しているので、各ファイルを開いてその内容を比較する余裕はありません。

4

5 に答える 5

3

Boost.FileSystemを見てくださいstd::time_t last_write_time(const path&)。免責事項:この概念がどれほど移植性があるかはわかりません

于 2013-03-18T13:33:46.400 に答える
3

ファイルシステムの問題は通常、OSに依存します。すべてのOSには、これらの情報にアクセスするためのシステムコールやライブラリ関数があります。WindowsにはGetFileTime-functionがあり、Unix / Linuxはstat、Macでも機能するはずです。Javaは何かを提供しているかもしれませんが、標準ライブラリだけを使用して他のことを実現するのは難しいでしょう。Googleはあなたの親友です。

于 2013-03-18T13:35:35.573 に答える
2

QFileInfo クラスは、システムに依存しないファイル情報を提供します。

QDateTime QFileInfo::lastModified () const

ファイルが最後に変更された日時を返します。

それがQtの全体的な考え方であるため、かなり移植性があるはずです。Windows、MacOS、Linux が正式にサポートされています。

于 2013-03-18T13:44:13.790 に答える
0

statまたはfstatシステム コールを使用します。これらstruct statは、変更時刻を含む構造体を生成しst_atimespecます。

于 2013-03-18T13:32:29.010 に答える
0

別の解決策は、Linux で inotify を使用することです。Windows を使用している場合は、これが役立つでしょうか?

Windowsにinotifyのようなものはありますか?

于 2015-02-11T00:16:56.617 に答える