50 lines
1.2 KiB
C#
50 lines
1.2 KiB
C#
#if WINDOWSMETRO
|
|
using System;
|
|
using System.IO;
|
|
using Windows.ApplicationModel;
|
|
using Windows.Storage;
|
|
|
|
// This file is part of the ANX.Framework created by the
|
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
|
// For details see: http://anxframework.codeplex.com/license
|
|
|
|
namespace ANX.Framework.NonXNA.Windows8
|
|
{
|
|
public static class AssetsHelper
|
|
{
|
|
private static StorageFolder installLocation;
|
|
|
|
static AssetsHelper()
|
|
{
|
|
installLocation = Package.Current.InstalledLocation;
|
|
}
|
|
|
|
public static Stream LoadStreamFromAssets(string relativeFilepath)
|
|
{
|
|
relativeFilepath = relativeFilepath.Replace("/", "\\");
|
|
try
|
|
{
|
|
var task = installLocation.OpenStreamForReadAsync(relativeFilepath);
|
|
Stream filestream = TaskHelper.WaitForAsyncOperation(task);
|
|
|
|
// TODO: this copy is really inefficient!!
|
|
// Find out why reading from the asset stream causes
|
|
// the position property to go crazy :/
|
|
MemoryStream stream = new MemoryStream();
|
|
filestream.CopyTo(stream);
|
|
filestream.Dispose();
|
|
filestream = null;
|
|
|
|
stream.Position = 0;
|
|
return stream;
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
#endif
|