Files
2025-11-30 08:35:03 +02:00

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