fileInfo method

  1. @override
Future<Result<FileInfo, FileError>> fileInfo(
  1. String path
)
override

Returns metadata for the addressed path without following symlinks.

Implementation

@override
Future<Result<FileInfo, FileError>> fileInfo(String path) async {
  final resolved = _normalize(path);
  final file = _files[resolved];
  if (file != null) {
    return Ok(
      FileInfo(
        name: resolved.split('/').last,
        path: resolved,
        kind: FileKind.file,
        size: file.bytes.length,
        mtimeMs: file.mtimeMs,
      ),
    );
  }
  if (_dirs.contains(resolved)) {
    return Ok(
      FileInfo(
        name: resolved == '/' ? '/' : resolved.split('/').last,
        path: resolved,
        kind: FileKind.directory,
        size: 0,
        mtimeMs: 0,
      ),
    );
  }
  return Err(
    FileError(
      FileErrorCode.notFound,
      'No such file or directory',
      path: resolved,
    ),
  );
}