2017-09-12 37 views
0

アセンブリをダウンロードし、Unity Gameの管理フォルダに保存したかったのです。c#File.WriteAllBytesが機能しません/ファイルパスが機能しません

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

しかし、どういうわけか、それをダウンロードしていません。.. それだけで私は(「アセンブリ-CSharp.dll」)を使用してダウンロード。

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

速いヘルプが必要です。

+0

「動作しません」と定義します。また、このコードを実行しているプラ​​ットフォームには – Programmer

+0

があります。ありがとうございます。 – Chloe

+0

編集内容が改善されませんでした。あなたがこのコードを実行しているプラ​​ットフォームには答えません... iOS?アンドロイド? Windows?また、あなたの「うまくいかない」問題については説明していません。何かエラーがありますか?エラーメッセージはあまりにも役立ちます。また、あなたはダウンロードしていないことについて話しました。私が見るのは、コードをダウンロードしないで保存することです.... – Programmer

答えて

3

構文に誤りがあります。ファイルパスを修正してください:

ファイルへのフルパスを指定することもできます。

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

または、2番目のコードと同じように、Unityのメインフォルダからファイルに移動します。

可能な、代替ソリューションあなたは、Mac/iOS版にしている場合:それはMac上でiOSの上にあった場合は、iOSのビルドを設定することはできませんよう

、それが遷移でWebPlayerにデフォルト設定することができPC上のターゲット。

解決方法:PCでスタンドアロンPCのいずれかにターゲットを設定します。

source

+0

Windows上でのみ動作します – Programmer

+0

ありがとう、それは働いた! – Chloe

+0

クール!あなたが気にしないなら、それを答えとしてマークしてください。 –

1

ちょうど2セント、Pitorの答え正しい答えです。

しかし、より良い練習として、あなたはあなたのケースではPath.Combine

を使用する必要があり

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

そして、あなたは、プラットフォームに依存するコードに対処する必要はありません。

関連する問題