c#File.WriteAllBytes不起作用/ Filepath不起作用

时间:2017-09-12 17:32:09

标签: c# file unity3d byte filepath

我想下载一个程序集并将其保存到Unity游戏的托管文件夹中。

File.WriteAllBytes("file:///" + Application.dataPath + "/Managed/Assembly-CSharp.dll", assembly.bytes);

但不知怎的,它不下载.. 它只在我刚使用时下载(“Assembly-CSharp.dll”);

File.WriteAllBytes("Assembly-CSharp.dll", assembly.bytes);

需要快速帮助!

2 个答案:

答案 0 :(得分:3)

语法错误。修复文件路径:

File.WriteAllBytes("file:///"...

您可以提供文件的完整路径,例如

File.WriteAllBytes("C:/Users/myFile.txt", assembly.bytes);

或者导航到Unity主文件夹中的文件,就像在第二段代码中一样。

如果您使用的是Mac / iOS,可能的替代解决方案:

  

如果是在Mac上的iOS上,可能会在转换时默认为WebPlayer,因为您无法在PC上设置iOS构建目标。

     

解决方案:在PC上将目标设置为独立PC之一。

source

答案 1 :(得分:1)

只有两美分,Pitor的答案是正确的答案。

但作为更好的做法,您应该使用Path.Combine

在你的情况下:

var fileName = "/Managed/Assembly-CSharp.dll";
var filePath = Path.Combine(Application.dataPath, fileName);
File.WriteAllBytes(filePath, assembly.bytes);

您不必处理与平台相关的代码。

相关问题