2017-11-27 26 views
0

私はUnity 3d 2017.2.0f3で作業していて、一部のファイルをリモートパスからローカルマシンにコピーしています。これまでのところ、私はこの作業のようなものがあります。できるだけ早く私としてUnity 3D FileUtil.copyFileOrDirectory厄介な例外

string sourcePath= "\\\\SomeFolder\\SomeSubfolder\\SomeFile.png"; 
string targetCachePath = "d:/SomeOtherFolder/SomeSubfolder/SomeFile.png"; 
FileUtil.CopyFileOrDirectory(sourcePath, targetCachePath); 

しかし:

string sourcePath= "\\\\SomeFolder\\SomeSubfolder\\SomeFile.png"; 
string targetCachePath = "d:/SomeOtherFolder/SomeFile.png"; 
FileUtil.CopyFileOrDirectory(sourcePath, targetCachePath); 

をポイントは、私は、私はこのようなものが必要SomeOtherFolderにサブフォルダにファイルをコピーする必要があるということですtargetCachePathの "SomeSubfolder"を追加します。CopyFileOrDirectoryはIOExceptionの処理を停止します:ファイル/ディレクトリのコピーに失敗しました。サブフォルダーを含むターゲットパスを使用することとの実際の違いを見ることができないので、私は迷惑です...私がそれがうまくいくと知っている限り...しかし、そうではありません。

私はここで何が欠けているのを誰も見ることができますか?

ありがとうございました!

+1

「SomeSubfolder」が除外され、あなたに許可が与えられていることを確認してください。 – BugFinder

+0

ありがとうございます。私はSomeSubfolder文字列にタイプミスがありましたが、私はそれを見ませんでした。 –

答えて

0

BugFinderが言ったように、ディレクトリが存在することを確認してください。また、Unityドキュメントは "すべてのファイル区切り記号は前方にあるもの"/"です。 sourcePathを変更してみてください。 Additionalyあなたがあなたとして文字列を宣言することができます。

string sourcePath= @"/SomeFolder/SomeSubfolder/SomeFile.png"; 
string targetCachePath = @"d:/SomeOtherFolder/SomeSubfolder/SomeFile.png"; 
FileUtil.CopyFileOrDirectory(sourcePath, targetCachePath); 

値の前に@をリテラル逐語的文字列として文字列をマーク - 通常はエスケープシーケンスとして解釈される文字列に何かが無視されます。

あなたの進歩と最高の運勢!

+0

助けてくれてありがとう。確かに便利です! –