gpt4 book ai didi

c# - Xamarin.Android 应用程序如何访问将复制到输出目录设置为 CopyAlways 的文件?

转载 作者:行者123 更新时间:2023-11-30 17:28:53 24 4
gpt4 key购买 nike

我正在将常规 .net 框架遗留库迁移到 .net 标准库。如下图所示,旧版库曾经有一个文件总是被复制到 Output 文件夹:

enter image description here

在该库中,有一个遗留类在访问磁盘上的文件之前测试文件夹是否存在,如下所示:

namespace Library
{
public class LegacyClass
{
public void AccessFile()
{
string path = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

bool directoryExists = Directory.Exists(Path.Combine(path, "Files"));

// It does exist in the Console app. It does not in the Android app.
// ... And then access the file.
}
}
}

虽然它正在使用控制台应用程序,但它无法在空白的 Xamarin 应用程序中工作:

protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);

// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);

//
var legacyClass = new LegacyClass();

legacyClass.AccessFile();
}

LegacyClass 无法找到 Files 文件夹:

enter image description here

问题

Xamarin.Android 应用程序如何访问将 Copy to Output Directory 设置为 CopyAlways 的文件?

最佳答案

您不能那样做,但您可以使用嵌入式资源轻松实现您的目标。

https://developer.xamarin.com/samples/mobile/EmbeddedResources/

相反,您必须将文件添加到您的 csproj,然后您可以在该文件的属性中将其构建操作设置为 Embedded Resource。 (在解决方案资源管理器中选择文件并按 F4)。

在运行时,您可以使用以下方法将 Stream 返回到您的文件:

Assembly.Load("MyProjectWhichContainsTheFile").GetManifestResourceStream("MyFile.txt")

关于c# - Xamarin.Android 应用程序如何访问将复制到输出目录设置为 CopyAlways 的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51895973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com