سؤال

In a Windows Store app project I was reading a File like this:

var uri = new Uri("ms-appx:///DataModel/Accounts.csv");
var file = await StorageFile.GetFileFromApplicationUriAsync(uri);

var read = await FileIO.ReadTextAsync(file);

The file Accounts.csv was added with build action content.

I have now moved the code to a separate class library. File is still added with build Action content.

But the uri scheme does not seem to work anymore.

I've also tried:

var file = await StorageFile.GetFileFromPathAsync("/DataModel/Accounts.csv");
var read = await FileIO.ReadTextAsync(file);

How do I access a file in a WinRT class library? Does the file library behave differently than the Store app project?

هل كانت مفيدة؟

المحلول

You can access file in Windows Store class library like this.

var _Assembly = Assembly.Load(new AssemblyName("ASSEMBLY_NAME"));
var _Stream = _Assembly.GetManifestResourceStream("YOUR_FILE_NAME_WITH_PATH.xml");

Please note in class library path members are seperated by . not by \

To get all the resource names

var names = _Assembly.GetManifestResourceNames();

The GetManifestResourceStream method will always returns NULL if the resource built action property is not set to embedded resource

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top