40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
#if WINDOWS_UWP
|
|
using System.IO;
|
|
using System.Threading.Tasks;
|
|
using Windows.Storage;
|
|
using System;
|
|
using System.Collections;
|
|
|
|
namespace UnityGLTF.Loader
|
|
{
|
|
public class StorageFolderLoader : IDataLoader
|
|
{
|
|
private StorageFolder _rootFolder;
|
|
|
|
public StorageFolderLoader(StorageFolder rootFolder)
|
|
{
|
|
_rootFolder = rootFolder;
|
|
}
|
|
|
|
public async Task<Stream> LoadStreamAsync(string relativeFilePath)
|
|
{
|
|
if (relativeFilePath == null)
|
|
{
|
|
throw new ArgumentNullException("relativeFilePath");
|
|
}
|
|
|
|
StorageFolder parentFolder = _rootFolder;
|
|
string fileName = Path.GetFileName(relativeFilePath);
|
|
if (relativeFilePath != fileName)
|
|
{
|
|
string folderToLoad = relativeFilePath.Substring(0, relativeFilePath.Length - fileName.Length);
|
|
parentFolder = await _rootFolder.GetFolderAsync(folderToLoad);
|
|
}
|
|
|
|
StorageFile bufferFile = await parentFolder.GetFileAsync(fileName);
|
|
return await bufferFile.OpenStreamForReadAsync();
|
|
}
|
|
}
|
|
}
|
|
#endif
|