FAQ
ArcObjects でフィーチャクラスの更新日時を取得したい

ナレッジ番号:5333 | 登録日:2023/07/26 | 更新日:2024/11/21

概要

フィーチャクラスの更新日時の取得は、IDatasetFileStat2::StatTime プロパティの引数に、更新日時を取得するesriDatasetFileStatTimeLastModification 定数を指定します。

ここではそのためのサンプル コードを紹介いたします。

サンプル コード

//取得対象のフィーチャクラスを開く
string dataPath = @"C:\gis_work\Mesh.gdb";
IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(typeof(FileGDBWorkspaceFactoryClass));  
IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspaceFactory.OpenFromFile(dataPath, 0);
IFeatureClass pFeatureClass=featureWorkspace.OpenFeatureClass("GRID8");

// IFeatureClass を IDatasetFileStat2 にキャスト
IDatasetFileStat2 pDatasetFileStat = (IDatasetFileStat2)pFeatureClass;

//フィーチャクラスの更新日時の取得
//戻り値:Unix 時間
int updateDate = pDatasetFileStat.get_StatTime(esriDatasetFileStatTimeMode.esriDatasetFileStatTimeLastModification);

////.Net Framework 4.7 以降の場合
////FromUnixTimeSeconds では、世界協定時刻 (UTC) に変換
////ToLocalTime で日本時間に変換
//var dateTime = DateTimeOffset.FromUnixTimeSeconds(updateDate).ToLocalTime(); 

//Unix 時間の基準日時を UTC 時間で定義
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
//日付と時刻に変換
DateTime getDT = dt.AddSeconds(updateDate).ToLocalTime();

//取得した更新日時をメッセージボックスで表示
MessageBox.Show(getDT.ToString());

メタデータ

機能

種類

製品