#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 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