Serialization 如何在Unity中保存windows应用商店应用程序中的文件

Serialization 如何在Unity中保存windows应用商店应用程序中的文件,serialization,unity3d,windows-store,Serialization,Unity3d,Windows Store,我正在Unity3D中制作一个应用程序,在windows应用商店中发布。 您似乎无法使用.net streamwriter编写文件。 我想将csv文件保存到某个位置,然后使用WWW类将其发送到服务器。 我发现了一个从资产文件夹中读取文件的项目。 这是密码 使用UnityEngine; 使用制度; 使用系统集合; 使用System.IO; #如果NETFX_核心 使用系统文本; 使用System.Threading.Tasks; 使用Windows.Storage; 使用Windows.Stora

我正在Unity3D中制作一个应用程序,在windows应用商店中发布。 您似乎无法使用.net streamwriter编写文件。 我想将csv文件保存到某个位置,然后使用WWW类将其发送到服务器。 我发现了一个从资产文件夹中读取文件的项目。 这是密码

使用UnityEngine;
使用制度;
使用系统集合;
使用System.IO;
#如果NETFX_核心
使用系统文本;
使用System.Threading.Tasks;
使用Windows.Storage;
使用Windows.Storage.Streams;
#恩迪夫
命名空间IOS
{
公共类文件
{
公共静态对象结果;
#如果NETFX_核心
公共静态异步任务\u ReadAllBytes(字符串路径)
{
StorageFile file=await-StorageFile.GetFileFromPathAsync(path.Replace(“/”,“\\”);
byte[]fileBytes=null;
使用(irandomaccesstreamwithcontenttype stream=await file.OpenReadAsync())
{
fileBytes=新字节[stream.Size];
使用(DataReader=新DataReader(流))
{
wait reader.LoadAsync((uint)stream.Size);
reader.ReadBytes(fileBytes);
}
}
返回文件字节;
}
#恩迪夫
公共静态IEnumerator ReadAllText(字符串路径)
{
#如果NETFX_核心
任务任务=_ReadAllBytes(路径);
而(!task.IsCompleted)
{
收益返回空;
}
UTF8Encoding enc=新的UTF8Encoding();
结果=enc.GetString(task.result,0,task.result.Length);
#否则
收益返回空;
结果=System.IO.File.ReadAllText(路径);
#恩迪夫
}
}
}
公共课示例:单一行为
{
私有字符串数据;
IEnumerator读取文件(字符串路径)
{
产生返回start例程(IOS.File.ReadAllText(路径));
data=IOS.File.result作为字符串;
}
公营机构
{
字符串路径=path.Combine(Application.dataPath,“StreamingAssets/Data.txt”);
if(GUILayout.Button(“读取文件”+“路径”+”))
{
start例程(ReadFile(path));
}
GUILayout.Label(数据==null?“:数据);
}
}
以下是用于序列化Windows应用商店应用程序的MSDN文档


我想知道如何适应我的目的。例如,将文件写入特定位置,以便稍后通过WWW发送文件时参考。

主要问题是位置。Application.dataPath是应用程序包中的只读数据。要写入数据,请使用获取应用程序数据文件夹中的可写入位置

Unity提供了System.IO.File及其对象的替代方案。您只需在System.IO和UnityEngine.Windows之间切换使用,然后调用File.ReadAllBytes或File.WriteAllBytes,而不考虑平台


这基本上就是您的代码snippit所做的,只是Unity已经提供了它

主要问题是位置。Application.dataPath是应用程序包中的只读数据。要写入数据,请使用获取应用程序数据文件夹中的可写入位置

Unity提供了System.IO.File及其对象的替代方案。您只需在System.IO和UnityEngine.Windows之间切换使用,然后调用File.ReadAllBytes或File.WriteAllBytes,而不考虑平台


这基本上就是您的代码snippit所做的,只是Unity已经提供了它

主要问题是位置。Application.dataPath是应用程序包中的只读数据。要写入数据,请使用获取应用程序数据文件夹中的可写入位置

Unity提供了System.IO.File及其对象的替代方案。您只需在System.IO和UnityEngine.Windows之间切换使用,然后调用File.ReadAllBytes或File.WriteAllBytes,而不考虑平台


这基本上就是您的代码snippit所做的,只是Unity已经提供了它

主要问题是位置。Application.dataPath是应用程序包中的只读数据。要写入数据,请使用获取应用程序数据文件夹中的可写入位置

Unity提供了System.IO.File及其对象的替代方案。您只需在System.IO和UnityEngine.Windows之间切换使用,然后调用File.ReadAllBytes或File.WriteAllBytes,而不考虑平台

这基本上就是您的代码snippit所做的,只是Unity已经提供了它