我想下载一个程序集并将其保存到Unity游戏的托管文件夹中。
File.WriteAllBytes("file:///" + Application.dataPath + "/Managed/Assembly-CSharp.dll", assembly.bytes);
但不知怎的,它不下载.. 它只在我刚使用时下载(“Assembly-CSharp.dll”);
File.WriteAllBytes("Assembly-CSharp.dll", assembly.bytes);
需要快速帮助!
答案 0 :(得分:3)
语法错误。修复文件路径:
File.WriteAllBytes("file:///"...
您可以提供文件的完整路径,例如
File.WriteAllBytes("C:/Users/myFile.txt", assembly.bytes);
或者导航到Unity主文件夹中的文件,就像在第二段代码中一样。
如果您使用的是Mac / iOS,可能的替代解决方案:
如果是在Mac上的iOS上,可能会在转换时默认为WebPlayer,因为您无法在PC上设置iOS构建目标。
解决方案:在PC上将目标设置为独立PC之一。
答案 1 :(得分:1)
只有两美分,Pitor的答案是正确的答案。
但作为更好的做法,您应该使用Path.Combine
在你的情况下:
var fileName = "/Managed/Assembly-CSharp.dll";
var filePath = Path.Combine(Application.dataPath, fileName);
File.WriteAllBytes(filePath, assembly.bytes);
您不必处理与平台相关的代码。