【发布时间】:2024-01-16 09:02:01
【问题描述】:
我已经为我的游戏编写了一个补丁程序,但我被困在文件的实际保存部分。我不断收到来自统一的以下错误:
System.ArgumentException:名称包含无效字符 在 System.IO.FileStream..ctor....
这是负责保存我的文件的代码:
function downloadFile(file:String){
var download:WWW = WWW(rawDataFolder+""+file); //download file from platforms raw folder
yield download; // wait for download to finish
// var saveLoc = Application.persistentDataPath; //Location where the files will go
var saveLoc = "C:\\games";
try{
Debug.Log(saveLoc+"\\"+file);
File.WriteAllBytes (saveLoc+"\\"+file+".FILE", download.bytes); //<----PROBLEM HERE.
}
catch(error){
updateMsg ="Update Failed with error message:\n\n"+error.ToString();
errorOccured = true;
Debug.Log(error);
}
}
我正在尝试下载一个名为“level0”的文件。它没有文件扩展名......在Windows资源管理器中它说它只是“文件”。所以我认为这是一个二进制文件。我错了吗?什么可能导致我的空字符问题?这个缺少的扩展?对此的任何帮助都会令人惊叹。
【问题讨论】:
-
Debug.Log(saveLoc+"\\"+file); 的输出是什么?如果您更改您尝试下载的文件的名称,错误仍然存在?如果您只是为了测试而输入另一个文件名,例如 testfile.txt 怎么办?
-
如果你尝试使用这个语法会怎样:File.WriteAllBytes(@"C:\test.txt",download.bytes); ??
-
顺便说一句,“名称包含无效字符”错误并不意味着它是一个空对象。
-
好的,很高兴知道。我目前正在做一个 www 来阅读谷歌上的哪个版本,并且可以做同样的事情。今晚我会尝试你的一些建议,看看会发生什么。我已经获取了 Debug.Log(saveLoc+"\\"+file),将它提供的链接复制到了 google 中并且它工作了(它开始下载文件)。但是,该文件没有文件结尾。
-
Debug.Log(saveLoc+"\\"+file) 输出如下:C:\games\level0
标签: unity3d saving-data patch downloading-website-files