プログラム学習室 http://studyhallweb.com/

Dart言語: ファイル情報の取得

Sample Code

ファイル名やディレクトリ名、タイムスタンプなどを取得するサンプル。
ファイルの存在を確認する existsSynec() は相対パスでないとダメらしい。
				
import 'dart:io';

class C_File {
  String sFullpath;     // フルパス
  String sFilename;     // ファイル名
  String sDirectory;    // ディレクトリ名
  String sExtension;    // 拡張子 (.は含まない)
  DateTime oTimestamp;  // 最終更新日時
  File oFile;

  // Pathをセット、各種情報を取得
  // Pathは相対パスでなければならない(絶対パスだとexistsSynecがfalseになる)
  bool setFile(var sPath) {
    oFile = new File(sPath);
    if (oFile.existsSync() == false) {
      return false;
    }
    sFullpath = oFile.absolute.path;
    sDirectory = sFullpath.substring(0, sFullpath.lastIndexOf('\\'));
    sFilename = sFullpath.substring(sFullpath.lastIndexOf('\\') + 1);
    sExtension = sFilename.substring(sFilename.lastIndexOf('.') + 1);
    oTimestamp = oFile.lastModifiedSync();
    return true;
  }
}

void main(List<String> arguments) {
  C_File oGetFile = new C_File();
  if (arguments.length > 0) {
    if (oGetFile.setFile(arguments[0]) == false) {
      print('File not exist.');
    } else {
      print(oGetFile.sFullpath);
      print(oGetFile.sDirectory);
      print(oGetFile.sFilename);
      print(oGetFile.sExtension);
      print(oGetFile.oTimestamp);
    }
  } else {
    print('ファイル名を指定してください: test017.dart filename');
  }
}