Asynchroner Vertrag für Verzeichnislisten und Dateioperationen.
list ist erforderlich. Vue bietet optionale Methoden; Dart-Implementierungen deklarieren Fähigkeiten in capabilities und überschreiben die entsprechenden Methoden. Nicht implementierte Dart-Operationen werfen UnsupportedError. list/upload berücksichtigen kooperativen Abbruch. createDirectory/upload liefern einen Eintrag; rename/copy/move/remove keinen Wert; download liefert Blob (Vue) oder Uint8List (Dart).
| Mitglied / Typ / Rückgabe | Bedeutung |
|---|---|
Set<String> get capabilities | Unterstützte Dateiaufgaben; steuert sichtbare Aktionen. |
Future<List<TxFileEntry>> list(String? parentId, {TxCancellation? cancellation}) | Liefert Einträge des angegebenen Elternordners; null liest die Wurzel. |
Future<TxFileEntry> createDirectory(String? parentId, String name) | Legt einen Ordner mit gültigem, im Elternordner eindeutigem Namen an. |
Future<void> rename(String id, String name) | Benennt eine Datei oder einen Ordner um; ID und Elternordner bleiben erhalten. |
Future<void> copy(String id, String? target) | Kopiert einen Eintrag rekursiv in den Zielordner; neue IDs werden vergeben. |
Future<void> move(String id, String? target) | Verschiebt einen Eintrag in den Zielordner; Zyklen werden abgelehnt. |
Future<void> remove(String id) | Löscht den Datensatz beziehungsweise rekursiv den Datei-/Ordnerbestand. |
Future<TxFileEntry> upload(String? parentId, TxFile file, {TxCancellation? cancellation}) | Lädt eine Datei in den angegebenen Ordner; liefert den neuen Dateieintrag. |
Future<Uint8List> download(String id) | Liefert Dateiinhalt; Ordnerdownloads schlagen fehl. |
import 'package:tecexpress/tecexpress.dart';
Future<void> example() async {
TxFileProvider provider = TxMemoryFileProvider();
print(provider.capabilities);
print(await provider.list(null));
}