getFiles static method

Future<List<FileItem>> getFiles(
  1. String currentPath,
  2. BuildContext context
)

Retrieves and processes files from the specified directory.

This method:

  • Fetches all files from the given directory.
  • Filters for files ending with '.enc.ttl'.
  • Validates each file's accessibility.
  • Creates FileItem objects with metadata.

Parameters:

  • currentPath: The directory path to process.
  • context: Build context for UI operations.

Returns a list of processed FileItem objects.

Implementation

static Future<List<FileItem>> getFiles(
  String currentPath,
  BuildContext context,
) async {
  // Get directory URL and contents.

  final dirUrl = await getDirUrl(currentPath);
  final resources = await getResourcesInContainer(dirUrl);

  // Process each file in the directory.

  final processedFiles = <FileItem>[];
  for (var fileName in resources.files) {
    // Skip non-TTL files. Include both .enc.ttl and .ttl files.

    if (!fileName.endsWith('.enc.ttl') && !fileName.endsWith('.ttl')) {
      continue;
    }

    // Construct full path.

    final relativePath = '$currentPath/$fileName';

    if (!context.mounted) continue;

    // Read file metadata.

    final metadata = await readPod(
      relativePath,
      context,
      const Text('Reading file info'),
    );

    // Add valid files to the processed list.

    if (metadata != SolidFunctionCallStatus.fail.toString() &&
        metadata != SolidFunctionCallStatus.notLoggedIn.toString()) {
      processedFiles.add(
        FileItem(
          name: fileName,
          path: relativePath,
          dateModified: DateTime.now(),
        ),
      );
    }
  }
  return processedFiles;
}