Xamarin 表单、OSM 文件、系统 IO 文件未找到异常
Xamarin forms, OSM file, system IO File not found exception
您好,我在 Xamarin 表单中处理某些文件时遇到问题。每次我 运行 我的代码都会不断收到 systemIO FileNotfound 异常。我正在使用的代码如下。关于 routerDB 的内容是我正在使用的名为 Itinero 的寻路 NuGet 包的一部分。在我的代码到达 create routerDb.LoadOsmData 行之前,它一直卡在第 4 行并返回错误:System.IO.FileNotFoundException: 'Could not find file "/Date\wales-latest.osm.pbf"'
这是 Xamarin 表单中文件“wales-latest.osm.pbf”的绝对路径。
C:\USW Pathfinder\USW Pathfinder\USW Pathfinder\bin\Debug\Date
我很沮丧,这不起作用,我创建了另一个程序,但这次 windows 形成了一个,我输入了与下面相同的代码,它第一次完美地工作并为我创建了文件 wales.router.db如我所料。
这是 Windows 格式的文件“wales-latest.osm.pbf”的绝对路径。
C:\Users\MYNAME\Desktop\Pathfinder\Pathfinder\bin\Debug\Date
我还在 Xamarin 表单中尝试了更简单的文件处理代码,看看我是否可以访问任何文件,如第二个代码块所示,但我总是遇到找不到文件的情况。
谁能告诉我为什么会这样?
private void LoadButton_OnClicked(object sender, EventArgs e)
{
var routerDb = new RouterDb();
using (var stream = new FileInfo(@"Date\wales-latest.osm.pbf").OpenRead())
{
// create the network for cars.
routerDb.LoadOsmData(stream, Vehicle.Car);
}
// write the routerdb to disk.
using (var stream = new FileInfo(@"wales.routerdb").Open(FileMode.Create))
{
routerDb.Serialize(stream);
};
}
public void ReadButton_OnClicked(object sender, EventArgs e)
{
File.ReadAllText(@"Date\wales-latest.osm.pbf");
}
c:\
是 您的电脑 上的一个文件夹。 Xamarin 在移动设备(或模拟器)上 运行 并且在运行时它无法访问您 PC 的文件系统。如果您想将文件作为应用程序的一部分包含,则需要作为项目的一部分包含,以便它与您的应用程序一起部署
Xamarin 文档在 working with files
上有完整的文章
您好,我在 Xamarin 表单中处理某些文件时遇到问题。每次我 运行 我的代码都会不断收到 systemIO FileNotfound 异常。我正在使用的代码如下。关于 routerDB 的内容是我正在使用的名为 Itinero 的寻路 NuGet 包的一部分。在我的代码到达 create routerDb.LoadOsmData 行之前,它一直卡在第 4 行并返回错误:System.IO.FileNotFoundException: 'Could not find file "/Date\wales-latest.osm.pbf"'
这是 Xamarin 表单中文件“wales-latest.osm.pbf”的绝对路径。
C:\USW Pathfinder\USW Pathfinder\USW Pathfinder\bin\Debug\Date
我很沮丧,这不起作用,我创建了另一个程序,但这次 windows 形成了一个,我输入了与下面相同的代码,它第一次完美地工作并为我创建了文件 wales.router.db如我所料。
这是 Windows 格式的文件“wales-latest.osm.pbf”的绝对路径。
C:\Users\MYNAME\Desktop\Pathfinder\Pathfinder\bin\Debug\Date
我还在 Xamarin 表单中尝试了更简单的文件处理代码,看看我是否可以访问任何文件,如第二个代码块所示,但我总是遇到找不到文件的情况。
谁能告诉我为什么会这样?
private void LoadButton_OnClicked(object sender, EventArgs e)
{
var routerDb = new RouterDb();
using (var stream = new FileInfo(@"Date\wales-latest.osm.pbf").OpenRead())
{
// create the network for cars.
routerDb.LoadOsmData(stream, Vehicle.Car);
}
// write the routerdb to disk.
using (var stream = new FileInfo(@"wales.routerdb").Open(FileMode.Create))
{
routerDb.Serialize(stream);
};
}
public void ReadButton_OnClicked(object sender, EventArgs e)
{
File.ReadAllText(@"Date\wales-latest.osm.pbf");
}
c:\
是 您的电脑 上的一个文件夹。 Xamarin 在移动设备(或模拟器)上 运行 并且在运行时它无法访问您 PC 的文件系统。如果您想将文件作为应用程序的一部分包含,则需要作为项目的一部分包含,以便它与您的应用程序一起部署
Xamarin 文档在 working with files
上有完整的文章