2

私は Unity ゲーム エンジンを使用してローカル ファイルを FTP サーバーからのファイルで上書きしようとしている開発者です。そのために System.IO.File.WriteAllBytes 関数を使用しています。

アプリケーションを起動し、更新されたコードをトリガーすると、アプリケーションがフリーズします。

私の Windows フォームでは、コードはここに到着し、WebClient インスタンスを使用してファイルをダウンロードし、ローカル ファイルよりも大きい場合は上書きします。

public void downloadFile (WebClient webClient, string urlAddress, 
    string location, byte[] localFile)
{
        webClient.Proxy = null;
        webClient.Credentials = new NetworkCredential("<user>", "<pass>");
        byte[] fileData = webClient.DownloadData("ftp://"+ urlAddress);
        /*
         * Only download if bytes of remote file 
         * is larger than bytes of local file
         */
        if (fileData.Length > localFile.Length)
        {
            File.WriteAllBytes(location, fileData);
        }
}

FileStream を使用すると、アプリケーションも同様にフリーズします。

FileStream _FileStream = new FileStream(location, FileMode.Create, FileAccess.Write);
_FileStream.Write(fileData, 0, fileData.Length);
_FileStream.Close();

また、更新が必要なすべてのファイルを一時フォルダーに書き込んでから、File.Copy を使用してみました。

ファイルを適切に上書きするために何をしていると思いますか?

4

0 に答える 0