How to get content of directory in Flutter in a sorted way?

Viewed 107

So I am currently trying to get the content of directory in Flutter, which works great:

  void getFileTree() async {
    io.Directory dir = io.Directory(state.project!.path);

    dir.list(recursive: true).listen((file) {
      print(file);
    });
  }

I get the following output (Just a part of the real output):

flutter: Directory: 'C:\Users\user\Desktop\hi\.dart_tool'
flutter: Directory: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device'
flutter: Directory: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default'
flutter: File: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\Affiliation Database'
flutter: File: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\Affiliation Database-journal'
flutter: Directory: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\AutofillStrikeDatabase'
flutter: File: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\AutofillStrikeDatabase\LOCK'
flutter: File: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\AutofillStrikeDatabase\LOG'
flutter: File: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\AutofillStrikeDatabase\LOG.old'
flutter: Directory: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\blob_storage'
flutter: Directory: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\blob_storage\5b309f3a-2b31-489e-83de-93c565da1fc8'
flutter: Directory: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\blob_storage\7f40d39f-df52-4899-9a42-73022a425aea'
flutter: Directory: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\BudgetDatabase'
flutter: File: 'C:\Users\user\Desktop\hi\.dart_tool\chrome-device\Default\BudgetDatabase\LOCK'

...

Things that work great:

  • I get everything that is inside the directory and subdirectories, including files and folders to them

Things that I want to change:

  • I want to create a file tree, which maybe looks like this
hi
   .darttool
      chrome-device
         ...
   lib
      main.dart
      src
         screen.dart

I am honest, I don't have any idea on how to convert the output to something like a map, so I can create a file tree like this.

Question:

Is there a way to output it directly in a map or if not, do you have any idea on how to parse this output into a map?

Thanks for your help in advance!

0 Answers
Related