Flutter 方法';getExternalStorageDirectory';isn';t为类型';CSV控制器';
我正在尝试创建一个Flutter 方法';getExternalStorageDirectory';isn';t为类型';CSV控制器';,flutter,dart,Flutter,Dart,我正在尝试创建一个CSV控制器,但出现语法错误没有为类型“CsvController”定义方法“getExternalStorageDirectory” 以下是我遇到的问题: static Future<String> _getFilePath(String fileName) async { Io.Directory appDocumentsDirectory = await getExternalStorageDirectory(); // 1 String
CSV控制器
,但出现语法错误没有为类型“CsvController”定义方法“getExternalStorageDirectory”
以下是我遇到的问题:
static Future<String> _getFilePath(String fileName) async {
Io.Directory appDocumentsDirectory = await getExternalStorageDirectory(); // 1
String appDocumentsPath = appDocumentsDirectory.path; // 2
String filePath = '$appDocumentsPath/$fileName.csv'; // 3
return filePath;
}
以下是我的完整代码:
import 'package:csv/csv.dart';
import 'dart:io' as Io;
import 'package:ext_storage/ext_storage.dart';
class CsvController {
static Future<Io.File> getCsvFromList(List<List<dynamic>> csvDataList) async {
try {
String csvDataString = const ListToCsvConverter().convert(csvDataList);
Io.File csvFile = await _saveFile(csvDataString);
return csvFile;
} catch (e) {
print(e.toString());
return null;
}
}
static Future<Io.File> getCsvFromString(String csvString) async {
try {
Io.File csvFile = await _saveFile(csvString);
return csvFile;
} catch (e) {
print(e.toString());
return null;
}
}
static Future<String> _getFilePath(String fileName) async {
Io.Directory appDocumentsDirectory = await getExternalStorageDirectory(); // 1
String appDocumentsPath = appDocumentsDirectory.path; // 2
String filePath = '$appDocumentsPath/$fileName.csv'; // 3
return filePath;
}
static Future<Io.File> _saveFile(String fileDataString, {index = 0}) async {
try {
Io.File file = Io.File(await _getFilePath(
"${General.getDate().millisecondsSinceEpoch}" +
(index > 0 ? "($index)" : "")));
if (!file.existsSync()) {
// 1
file.writeAsStringSync(fileDataString); // 2
return file;
} else {
return _saveFile(fileDataString, index: index + 1);
}
} catch (e) {
print(e.toString());
return null;
}
}
}
import 'package:csv/csv.dart';
import 'dart:io' as Io;
import 'package:path_provider/path_provider.dart';
class CsvController {
static Future<Io.File> getCsvFromList(List<List<dynamic>> csvDataList) async {
try {
String csvDataString = const ListToCsvConverter().convert(csvDataList);
Io.File csvFile = await _saveFile(csvDataString);
return csvFile;
} catch (e) {
print(e.toString());
return null;
}
}
static Future<Io.File> getCsvFromString(String csvString) async {
try {
Io.File csvFile = await _saveFile(csvString);
return csvFile;
} catch (e) {
print(e.toString());
return null;
}
}
static Future<String> _getFilePath(String fileName) async {
Io.Directory appDocumentsDirectory = await getExternalStorageDirectory(); // 1
String appDocumentsPath = appDocumentsDirectory.path; // 2
String filePath = '$appDocumentsPath/$fileName.csv'; // 3
return filePath;
}
static Future<Io.File> _saveFile(String fileDataString, {index = 0}) async {
try {
Io.File file = Io.File(await _getFilePath(
"${General.getDate().millisecondsSinceEpoch}" +
(index > 0 ? "($index)" : "")));
if (!file.existsSync()) {
// 1
file.writeAsStringSync(fileDataString); // 2
return file;
} else {
return _saveFile(fileDataString, index: index + 1);
}
} catch (e) {
print(e.toString());
return null;
}
}
}
导入“包:csv/csv.dart”;
导入“dart:io”作为io;
导入“package:ext_storage/ext_storage.dart”;
类CSV控制器{
静态未来getCsvFromList(List csvDataList)异步{
试一试{
字符串csvDataString=const ListTocsConverter().convert(csvDataList);
Io.File csvFile=wait_saveFile(csvDataString);
返回csvFile;
}捕获(e){
打印(如toString());
返回null;
}
}
静态未来getCsvFromString(String csvString)异步{
试一试{
Io.File csvFile=await\u saveFile(csvString);
返回csvFile;
}捕获(e){
打印(如toString());
返回null;
}
}
静态未来\u getFilePath(字符串文件名)异步{
Io.Directory appDocumentsDirectory=await getExternalStorageDirectory();//1
字符串appDocumentsPath=appDocumentsDirectory.path;//2
字符串filePath='$appDocumentsPath/$fileName.csv';//3
返回文件路径;
}
静态未来_saveFile(字符串fileDataString,{index=0})异步{
试一试{
Io.File File=Io.File(等待_getFilePath(
“${General.getDate().millissecondssinceepoch}”+
(索引>0?”($index)”:“”);
如果(!file.existsSync()){
// 1
file.writeastringsync(fileDataString);//2
返回文件;
}否则{
返回_saveFile(fileDataString,索引:index+1);
}
}捕获(e){
打印(如toString());
返回null;
}
}
}
#编辑
在解决它之后,我仍然有一个通用关键字的问题。我已经解决了这个问题,因为我没有定义
路径提供程序
包:
这是我的全部代码:
import 'package:csv/csv.dart';
import 'dart:io' as Io;
import 'package:ext_storage/ext_storage.dart';
class CsvController {
static Future<Io.File> getCsvFromList(List<List<dynamic>> csvDataList) async {
try {
String csvDataString = const ListToCsvConverter().convert(csvDataList);
Io.File csvFile = await _saveFile(csvDataString);
return csvFile;
} catch (e) {
print(e.toString());
return null;
}
}
static Future<Io.File> getCsvFromString(String csvString) async {
try {
Io.File csvFile = await _saveFile(csvString);
return csvFile;
} catch (e) {
print(e.toString());
return null;
}
}
static Future<String> _getFilePath(String fileName) async {
Io.Directory appDocumentsDirectory = await getExternalStorageDirectory(); // 1
String appDocumentsPath = appDocumentsDirectory.path; // 2
String filePath = '$appDocumentsPath/$fileName.csv'; // 3
return filePath;
}
static Future<Io.File> _saveFile(String fileDataString, {index = 0}) async {
try {
Io.File file = Io.File(await _getFilePath(
"${General.getDate().millisecondsSinceEpoch}" +
(index > 0 ? "($index)" : "")));
if (!file.existsSync()) {
// 1
file.writeAsStringSync(fileDataString); // 2
return file;
} else {
return _saveFile(fileDataString, index: index + 1);
}
} catch (e) {
print(e.toString());
return null;
}
}
}
import 'package:csv/csv.dart';
import 'dart:io' as Io;
import 'package:path_provider/path_provider.dart';
class CsvController {
static Future<Io.File> getCsvFromList(List<List<dynamic>> csvDataList) async {
try {
String csvDataString = const ListToCsvConverter().convert(csvDataList);
Io.File csvFile = await _saveFile(csvDataString);
return csvFile;
} catch (e) {
print(e.toString());
return null;
}
}
static Future<Io.File> getCsvFromString(String csvString) async {
try {
Io.File csvFile = await _saveFile(csvString);
return csvFile;
} catch (e) {
print(e.toString());
return null;
}
}
static Future<String> _getFilePath(String fileName) async {
Io.Directory appDocumentsDirectory = await getExternalStorageDirectory(); // 1
String appDocumentsPath = appDocumentsDirectory.path; // 2
String filePath = '$appDocumentsPath/$fileName.csv'; // 3
return filePath;
}
static Future<Io.File> _saveFile(String fileDataString, {index = 0}) async {
try {
Io.File file = Io.File(await _getFilePath(
"${General.getDate().millisecondsSinceEpoch}" +
(index > 0 ? "($index)" : "")));
if (!file.existsSync()) {
// 1
file.writeAsStringSync(fileDataString); // 2
return file;
} else {
return _saveFile(fileDataString, index: index + 1);
}
} catch (e) {
print(e.toString());
return null;
}
}
}
导入“包:csv/csv.dart”;
导入“dart:io”作为io;
导入“package:path_provider/path_provider.dart”;
类CSV控制器{
静态未来getCsvFromList(List csvDataList)异步{
试一试{
字符串csvDataString=const ListTocsConverter().convert(csvDataList);
Io.File csvFile=wait_saveFile(csvDataString);
返回csvFile;
}捕获(e){
打印(如toString());
返回null;
}
}
静态未来getCsvFromString(String csvString)异步{
试一试{
Io.File csvFile=await\u saveFile(csvString);
返回csvFile;
}捕获(e){
打印(如toString());
返回null;
}
}
静态未来\u getFilePath(字符串文件名)异步{
Io.Directory appDocumentsDirectory=await getExternalStorageDirectory();//1
字符串appDocumentsPath=appDocumentsDirectory.path;//2
字符串filePath='$appDocumentsPath/$fileName.csv';//3
返回文件路径;
}
静态未来_saveFile(字符串fileDataString,{index=0})异步{
试一试{
Io.File File=Io.File(等待_getFilePath(
“${General.getDate().millissecondssinceepoch}”+
(索引>0?”($index)”:“”);
如果(!file.existsSync()){
// 1
file.writeastringsync(fileDataString);//2
返回文件;
}否则{
返回_saveFile(fileDataString,索引:index+1);
}
}捕获(e){
打印(如toString());
返回null;
}
}
}