Flüchtiger Datei-Provider mit rekursivem Kopieren/Löschen, Namensprüfung und Zyklusschutz; Daten überleben keinen Neustart.
Alle Dateioperationen sind asynchron. Ordner-IDs und Datei-IDs sind Strings, null als Eltern-/Ziel-ID bezeichnet die Wurzel. Ungültige Namen, Namenskollisionen, unbekannte IDs, doppelte IDs und Zyklen schlagen fehl. Kopieren erhält Inhalte, vergibt neue IDs und kopiert Unterordner. Entfernen löscht rekursiv. Ohne gespeicherten Inhalt ist der Download leer; Ordnerdownloads sind nicht möglich.
TxMemoryFileProvider
| Parameter | Typ | Standard | Bedeutung |
|---|---|---|---|
| entries | List<TxFileEntry> | const [] | Anfängliche Datei-/Ordnereinträge des Speicher-Providers. |
| 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> move(String id, String? target) | Verschiebt einen Eintrag in den Zielordner; Zyklen werden abgelehnt. |
Future<void> copy(String id, String? target) | Kopiert einen Eintrag rekursiv in den Zielordner; neue IDs werden vergeben. |
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 'dart:typed_data';
import 'package:tecexpress/tecexpress.dart';
Future<void> example() async {
final provider = TxMemoryFileProvider();
final folder = await provider.createDirectory(null, 'Documents');
final file = await provider.upload(folder.id, TxFile.fromData(Uint8List.fromList([72, 105]), name: 'hello.txt'));
await provider.rename(file.id, 'renamed.txt');
await provider.copy(file.id, null);
await provider.rename(file.id, 'moved.txt');
await provider.move(file.id, null);
print(await provider.list(null));
print(await provider.download(file.id));
await provider.remove(folder.id);
}