FileSystemException:无法检索文件的长度(操作系统错误:无此类文件或目录,errno = 2)

时间:2020-04-27 04:56:15

标签: flutter flutter-dependencies filepicker.io flutter-plugin

我正在使用using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { const char DELIM = ','; const double END = 000; const string FILENAME = "D:\\customers.csv"; Customer cus = new Customer(); FileStream inFile = new FileStream(FILENAME, FileMode.Open, FileAccess.Read); StreamReader reader = new StreamReader(inFile); string recordIn; string[] fields; int idNum; Write(" **Type " + END + " To Quit** Enter Customer ID Number> "); idNum = Convert.ToInt32(ReadLine()); while (idNum != END) { WriteLine("{0,5}{1,10}{2,15}{3,15}{4,15}{5,25}\n", "ID", "Title", "First Name", "Last Name", "Gender", "DOB"); inFile.Seek(0, SeekOrigin.Begin); reader.ReadLine(); recordIn = reader.ReadLine(); while (recordIn != null) { fields = recordIn.Split(DELIM); cus.ID = Convert.ToInt32(fields[0]); cus.Title = fields[1]; cus.FirstName = fields[2]; cus.LastName = fields[3]; cus.Gender = fields[4]; cus.DOB = fields[5]; if (cus.ID == idNum) WriteLine("{0,5}{1,10}{2,15}{3,15}{4,15}{5,25}\n", cus.ID, cus.Title, cus.FirstName, cus.LastName, cus.Gender, cus.DOB); recordIn = reader.ReadLine(); } Console.Write(" **Type " + END + " To Quit** Enter Customer ID Number> "); idNum = Convert.ToInt32(ReadLine()); } reader.Close(); inFile.Close(); } public class Customer { public int idNum { get; set; } public string Title { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Gender { get; set; } public DateTime DOB { get; set; } } } } 这个插件在android上工作正常,但是在实际设备iOS 13.4.1中使用时却出现异常,在上传pdf文件时出现FileSystemException。

错误日志
file_picker: ^1.7.1

2020-04-29 15:56:04.991427+0530 Runner[4358:1416983] [VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: FileSystemException: Cannot retrieve length of file, path = '/private/var/mobile/Containers/Data/Application/0C1997E5-5243-494E-85EA-830E3248CC97/tmp/com.vassar.bluis-Inbox/https:%2Ffoodlicensing.fssai.gov.in%2FREG%2FRG_ViewReceipt.aspx?ReqID=68198366.pdf' (OS Error: No such file or directory, errno = 2)

Flutter版本详细信息

#0 _File.length. (dart:io/file_impl.dart:376:9)
#1 _rootRunUnary (dart:async/zone.dart:1134:38)
#2 _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#3 _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
#4 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)

1 个答案:

答案 0 :(得分:0)

似乎 Flutter file_picker 存在问题。 更新它应该是一个很好的修复

由于 iOS 13 您需要请求访问应用沙箱外的文件,如果没有,您将通过 startAccessingSecurityScopedResource 请求访问 lengthopen,即使您这样做了有一个有效的文件路径。

您可以在 here 中找到更多信息,这些信息实际上也适用于文件。