save method
Future<List<FilesModel> >
save({
- String toDirectory = "",
- String fromPath = "",
- File? fromFile,
- FilesModel? fromData,
- List<
String> fromPaths = const [], - List<
File> fromFiles = const [], - List<
FilesModel> fromDataList = const [], - AndroidPathOptions? androidPathOptions,
override
Future method save
has String _ fromPath
has String _ toDirectory
has File _ fromFile
has FilesModel _ fromData
has List of String_ fromPaths
has List of File_ fromFiles
has List of FilesModel_ fromDataList
has AndroidPathOptions _ androidPathOptions
has List of FilesModel return Value
Implementation
@override
Future<List<FilesModel>> save(
{String toDirectory = "",
String fromPath = "",
File? fromFile,
FilesModel? fromData,
List<String> fromPaths = const [],
List<File> fromFiles = const [],
List<FilesModel> fromDataList = const [],
AndroidPathOptions? androidPathOptions}) async {
List<FilesModel> successList = [];
try {
if (fromPath.isEmpty &&
fromData == null &&
fromFile == null &&
fromPaths.isEmpty &&
fromFiles.isEmpty &&
fromDataList.isEmpty) {
successList.add(FilesModel("Source Data", "No Source Data Found"));
return successList;
} else {
List<FilesModel> fSourceList = [];
if (fromPath.isNotEmpty) {
final fPName = _checkFilePath(fromPath);
if (fPName.isNotEmpty) {
final file = File(fromPath);
final fS = FilesModel(fPName, "", file.readAsBytesSync());
fSourceList.add(fS);
}
}
if (fromFile != null) {
final fPName = _checkFilePath(fromFile.path);
if (fPName.isNotEmpty) {
final fS = FilesModel(fPName, "", fromFile.readAsBytesSync());
fSourceList.add(fS);
}
}
if (fromData != null) {
if (fromData.value.isNotEmpty) {
final fPName = _checkFilePath(fromData.value);
if (fPName.isNotEmpty) {
final file = File(fromData.value);
final fS = FilesModel(fPName, "", file.readAsBytesSync());
fSourceList.add(fS);
}
} else if (fromData.data != null) {
if (fromData.valueName.isNotEmpty &&
fromData.data!.isNotEmpty &&
fromData.valueName.split(".").isNotEmpty) {
final fPName = fromData.valueName.contains("/")
? fromData.valueName.replaceAll("/", Platform.pathSeparator)
: fromData.valueName;
final fS = FilesModel(fPName, "", fromData.data);
fSourceList.add(fS);
}
}
}
if (fromPaths.isNotEmpty) {
for (var i in fromPaths) {
final fPName = _checkFilePath(i);
if (fPName.isNotEmpty) {
final file = File(i);
final fS = FilesModel(fPName, "", file.readAsBytesSync());
fSourceList.add(fS);
}
}
}
if (fromFiles.isNotEmpty) {
for (var i in fromFiles) {
final fPName = _checkFilePath(i.path);
if (fPName.isNotEmpty) {
final fS = FilesModel(fPName, "", i.readAsBytesSync());
fSourceList.add(fS);
}
}
}
if (fromDataList.isNotEmpty) {
for (var i in fromDataList) {
if (i.value.isNotEmpty) {
final fPName = _checkFilePath(i.value);
if (fPName.isNotEmpty) {
final file = File(i.value);
final fS = FilesModel(fPName, "", file.readAsBytesSync());
fSourceList.add(fS);
}
} else if (i.data != null) {
if (i.valueName.isNotEmpty &&
i.data!.isNotEmpty &&
i.valueName.split(".").isNotEmpty) {
final fPName = i.valueName.contains("/")
? i.valueName.replaceAll("/", Platform.pathSeparator)
: i.valueName;
final fS = FilesModel(fPName, "", i.data);
fSourceList.add(fS);
}
}
}
}
if (fSourceList.isNotEmpty) {
String aVal1 = "";
if (toDirectory.isNotEmpty) {
final fDirectory = Directory(joinPath(toDirectory, ""));
if (fDirectory.existsSync()) {
aVal1 = fDirectory.path;
} else {
aVal1 = await _saveFile(fileName: fSourceList.first.valueName);
}
} else {
aVal1 = await _saveFile(fileName: fSourceList.first.valueName);
}
final fType = _baseType(fSourceList.first.valueName);
if (aVal1.isNotEmpty) {
final aVal3 = aVal1.endsWith(fType)
? aVal1.substring(
0, aVal1.lastIndexOf(Platform.pathSeparator) + 1)
: aVal1;
for (var i in fSourceList) {
final fF = File(joinPath(aVal3, i.valueName));
fF.writeAsBytesSync(i.data!);
successList.add(FilesModel(i.valueName, fF.path));
}
}
return successList;
} else {
successList.add(FilesModel("Source Data", "No Source Data Found"));
return successList;
}
}
} catch (e) {
successList.add(FilesModel("Exception", e.toString()));
return successList;
}
}