details function

Future<Map?> details(
  1. dynamic path
)

Returns a HashMap containing detials of the file or the directory in organised style. you can use details from Directory or File instead this function.

arguments

keys

  • type
  • lastChanged
  • lastModified
  • size
  • permissions
  • lastAccessed
  • extension
  • path

Implementation

Future<Map?> details(dynamic path) async {
  HashMap _details = HashMap();
  if (path == null || (!path.existsSync() && !File(path).existsSync())) {
    print("file or dir does not exists");
    return null;
    // directory
  } else if (path.existsSync()) {
    // directory or file
    _details["type"] = path.statSync().type.toString();
    _details["lastChanged"] = TimeTools.timeNormalize(path.statSync().changed);
    _details["lastModified"] = TimeTools.timeNormalize(
        Directory.fromUri(Uri.parse(path)).statSync().modified);
    _details["size"] = path.statSync().size;
    _details["type"] = path.statSync().type.toString();
    _details["lastAccessed"] =
        TimeTools.timeNormalize(path.statSync().accessed);
    _details["permissions"] = path.statSync().modeString();
    _details["path"] = path;

    return _details;
    // file
  } else if (File(path).existsSync()) {
    var fileStat = File(path).statSync();
    // directory or file
    _details["lastModified"] = TimeTools.timeNormalize(fileStat.modified);
    _details["lastAccessed"] = TimeTools.timeNormalize(fileStat.accessed);
    _details["lastChanged"] = TimeTools.timeNormalize(fileStat.changed);
    _details["type"] = fileStat.type.toString();
    _details["size"] = fileStat.size;
    _details["permissions"] = fileStat.modeString();
    _details["extension"] = pathlib.extension(path.path).replaceFirst('.', '');
    _details["path"] = path;

    return _details;
  }
  return null;
}