【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)
自从Unity 5.2之后,配合VS 2015和Windows 10 SDK就能够将Unity工程发布为UWP APP。可是这当中仍有数不清的雷区,比如文件读取。
上篇是UWP文件读取的铺垫,本篇是具体的Unity转UWP的文件读取
在Unity中:
①Unity没有Windows.Storage命名空间,所以这绝对是个坑。
②Unity的C#版本只有4.0,不支持诞生于4.5的async/await异步机制,所以StorageFile 中的各种异步方法全部不能用。
虽说发布成UWP,但是在UWP下运行时,依然会受到Unity的诸多限制。
当然网上有方法在Unity中使用异步机制:http://blog.csdn.net/u013628121/article/details/52964063
但是我并没有成功,最终在这篇文章中得到了灵感,即采用非异步的方式:http://blog.csdn.net/u012741077/article/details/52167614
下面奉上我的最终代码:
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System.IO;
- using System.Text;
- using System;
- #if NETFX_CORE //UWP下编译
- using Windows.Storage;
- #endif
- /// <summary>
- /// 数据控制类
- /// </summary>
- public class DataBase : MonoBehaviour
- {
- // Use this for initialization
- void Start()
- {
- ReadData();
- }
- // Update is called once per frame
- #if NETFX_CORE //UWP下
- private void ReadData()
- {
- StorageFolder docLib = KnownFolders.DocumentsLibrary;
- var docFile = docLib.OpenStreamForReadAsync("Data\\data.bin");
- docFile.Wait();
- var fs = docFile.Result;
- //成功取出fs,后续操作自己玩
- fs.Dispose();
- }
- #else //Unity下
- private void ReadData()
- {
- string strDataPath = "C:\\Users\\YXY\\Documents\\Data\\data.bin";
- Stream fs = new FileStream(strDataPath, FileMode.Open, FileAccess.Read);
- //成功取出fs,后续操作自己玩
- fs.Dispose();
- }
- #endif
- }
这次的路径是:文档\Data\data.bin。对应传统路径:C:\Users\YXY\Documents\Data\data.bin。
上篇已经教过大家读取byte数据了,所以这里不再赘述,大家可以把byte转换成各种继续使用。
总而言之,只要不用异步方法取出流 fs,剩下的都好办了。
要点:
①FileStream的初始化在UWP中因为读写权限问题无法实现,但是可以用其父类Stream进行曲线救国。
②Stream在UWP中没有close方法,只有Dispose方法,据说没有办法保存文件,所以本篇只读不写。
原文链接:https://blog.csdn.net/xxxhhhyxy/article/details/72871607
【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (下篇)的更多相关文章
- 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (上篇)
Universal Windows Platform(UWP)是微软Windows10专用的通用应用平台,其目的在于在统一操作系统下控制所有智能电子设备. 自从Unity 5.2之后,配合VS 201 ...
- win10 uwp 保存用户选择文件夹
如果我们每次把临时处理的文件保存,都要让用户选择一次,用户会不会觉得uwp垃圾?如果我们每次打开应用,都从某个文件读取,而这个文件不在应用目录和已知的目录,那么每次都需要用户选择,用户会不会觉得uwp ...
- 本地文件读取(csv,txt)时字符编码问题解决
今天进行csv文件读取时,老是入库为空,因为其中有中文字符,我要通过中文字符映射成相应的编号(上升:1011,下降:1012),于是怎么也取不到编号.刚开始以为程序映射出了问题,最后日志打出来后,发现 ...
- win10 uwp 获取指定的文件 AQS
很多时候不需要获取整个文件夹的文件,是需要获取文件夹里指定的文件. 那么 UWP 如何对文件夹里的文件进行过滤,只拿出自己需要的文件? 本文:如何使用通配符或文件匹配方式在uwp获取文件夹中指定的文件 ...
- 使用git pull文件时和本地文件冲突怎么办?
同事在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes to 'c/environ.c' would be overwritten ...
- 使用git pull文件时和本地文件冲突怎么办
在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息:error: Your local changes to 'c/environ.c' would be overwritten by ...
- git pull文件时和本地文件冲突的问题
在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes to 'c/environ.c' would be overwritten b ...
- git pull文件时和本地文件冲突 方法之一
1.先将本地修改存储起来 2.pull内容 3.还原暂存的内容 4.解决文件中冲突的的部分 打开 dsa.txt 文件手动解决冲突. 其中Updated upstream 和=====之间的内容就是p ...
- Win10 UWP应用发布流程
简介 Win10 UWP应用作为和Win8.1 UAP应用不同的一种新应用形式,其上传至Windows应用商店的流程也有了一些改变. 这篇博文记录了我们发布一款Win10 UWP应用的基本流程,希望为 ...
随机推荐
- [转帖]Edge投降Chromium!微软王牌浏览器是如何跪倒的
Edge投降Chromium!微软王牌浏览器是如何跪倒的 https://tech.sina.com.cn/n/k/2018-12-17/doc-ihmutuec9824604.shtml 谷 ...
- OneZero第一次站立会议&Sprint Planning Meeting(2016.3.21)
会议时间:2016年3月21日 11:40~12:00 会议成员:冉华,张敏,王巍,夏一鸣. 会议目的:列举第一周工作内容,确定第一周工作分配.即挑选出一个Story作为本次迭代完成的目标. 会议内容 ...
- tp3.2.3运用phpexcel将excel文件导入mysql数据库
1,下载PHPExcel 2,配置将下载好的PHPExcel文件与PHPExcel.php 放到thinkphp 根目录 include/Library/Org/Util/下面 3,同时将PHPExc ...
- 前端学PHP之会话Session
前面的话 Session技术和Cookie相似,都是用来储存使用者的相关资料.但最大的不同之处在于Cookie是将数据存放在客户端的计算机之中,而Session则是将数据存放于服务器系统之下.Sess ...
- java 方法的返回类型
定义了返回值类型后 必须要执行 return 因为 当一个变量初始化时候 需要有数据 如果方法体里面没有返回数据类型时 这个变量是没有数据的 会报错 所以必须要返回一个数据 当一个方法体里面有 if ...
- 【BZOJ3139】[HNOI2013]比赛(搜索)
[BZOJ3139][HNOI2013]比赛(搜索) 题面 BZOJ 洛谷 题解 双倍经验
- 【转】 CRC循环冗余校验码
1.CRC CRC循环冗余校验码是数据通信中的一种查错校验码. 循环冗余检查对数据进行多项式计算,将计算结果附加在帧后面,接收数据的设备执行模2运算,保证数据传输的正确性和完整性. 2.模2除法 ①不 ...
- 【hdu1542】线段树求矩形面积并
分割线内容转载自http://hzwer.com/879.html ------------------------------------------------------------------ ...
- Mysql(三)约束
一.视图 视图是虚拟的数据表,本身不存储数据,而是提供数据的逻辑 展示. 1.创建视图 create view stu_view as select s1.id, s1.name, s2. ...
- 解题:CF1118F2 Tree Cutting (Hard Version)
题面 好题不问Div(这是Div3最后一题,不得不说Mike真是强=.=) 首先同一个颜色的点的LCA要和它们在一个划分出的块里,那么我们先按颜色把所有点到它们的LCA的路径涂色,如果这个过程中出现了 ...