Deployment 如何从已部署的HoloLens应用程序访问资产文件夹中的文件?
所以我有几个文件需要在我的应用程序中使用。两者都是NLP相关的.nbin文件。 我直接将它们存储在我的资产文件夹中,而不使用其中的任何子目录。(…/Assets/EnglishTOK.nbin) 现在,我使用Application.DataPath访问assets文件夹,而无需指定PC上的绝对路径(工作)。 但在我把它部署到全息透镜上之后,我得到了以下错误 FileNotFoundException C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\Template3DVS.Release\u Win32.Dinesh\Data\EnglishTok.nbin 以上路径如图所示。作为一个初学者,我无法调试这个问题 1) 如何访问这些文件 2) 如果此过程不正确,是否有其他方法可以在我的应用程序中包含文件?(不创建新的,但使用现有的) 3) 如果我确实从Windows设备门户上载文件,我应该将这些文件放在哪里?如何访问它们?是否需要指定任何新路径 谢谢你的时间 编辑: 1.要在设备中使用视频/音频/图像文件,请使用Assets/StreamingAssets文件夹放置这些文件。使用Application.StreamingAssetPath获取该文件夹的路径Deployment 如何从已部署的HoloLens应用程序访问资产文件夹中的文件?,deployment,assets,hololens,Deployment,Assets,Hololens,所以我有几个文件需要在我的应用程序中使用。两者都是NLP相关的.nbin文件。 我直接将它们存储在我的资产文件夹中,而不使用其中的任何子目录。(…/Assets/EnglishTOK.nbin) 现在,我使用Application.DataPath访问assets文件夹,而无需指定PC上的绝对路径(工作)。 但在我把它部署到全息透镜上之后,我得到了以下错误 FileNotFoundException C:\Data\Users\DefaultAccount\AppData\Local\Devel
您需要在资产文件夹中创建一个名为Resources的文件夹,并将文件放在其中。然后使用以下方法加载文件:
TextAsset asset = Resources.Load("myfile.bytes");
您可能希望将文件扩展名更改为Unity可以识别的扩展名,例如“.bytes”或“.txt”,以避免序列化问题。有关加载资源的更多信息,请参阅
对于最后一个问题,您可以从Windows设备门户访问文件,但这些文件应放在用户文件夹\LocalAppData\your app\LocalState中\
然后,可以通过将内容作为文件流加载来检索它们:
filename = "yourfile.bytes";
string streamstring = null;
if (File.Exists(Application.persistentDataPath + "/" + filename))
{
FileStream fs = new FileStream(Application.persistentDataPath + "/" + filename, FileMode.Open);
byte [] bytes = new byte [fs.Length];
fs.Read(bytes, 0, (int) fs.Length);
streamstring = Encoding.UTF8.GetString(bytes);
fs.Dispose();
}
是否有任何方法可以处理其他类型的文件(例如.mp4或.jpg)?您也可以使用。特别是对于非统一文件,如您的情况,这看起来更容易。资源是首选的所有类型的资产,如测试,图像,音频。谢谢你们两个。多亏了你的两个建议,我的项目现在完成了。