2016-04-25 5 views
0

CompanyImageが存在するかどうかを確認しようとしています。存在する場合は、既存のImageを削除して新しいものに置き換えたいと思います。これをする;File.Deleteの予防方法から継続

Application.Current.Dispatcher.InvokeAsync(new Action(() => 
{ 
    if (File.Exists(destFile)) 
    { 
     File.Delete(destFile); 
    } 

    File.Copy(sourceFile, destFile, true); 

}), DispatcherPriority.ContextIdle); 

私が試してみて、デバッグおよびFile.Delete方法の後にすることでMessageBox配置した、彼らは私が彼らはそれ以上実行されているからメソッドを妨げていることを信じるようにつながるかを示したことがありません。

これは私の方法がまったく続かないようにする何らかの理由がありますか?

+1

FWIWでは、 'File.Copy(sourceFile、destFile、true)'はファイルが存在する場合はすでに上書きされているので、 'File.Delete'を行う必要はありません。 –

+0

'if(File.Exists(destfile)) 'の必要はありません。単に 'File.Delete(destFile)'を呼び出してください。ファイルが存在する場合は削除されます。存在しない場合、 'File.Delete'は暗黙的に失敗します。しかし、なぜあなたは 'File.Copy'の呼び出しが既存のファイルをとにかく上書きするときに、最初にファイルを削除していますか? –

+0

何をデバッグしようとしていますか? 'File.Copy'は動作しませんか?おそらく、デバッガでプログラムを実行する必要があります。 'File.Copy'にブレークポイントを設定します。 –

答えて

0

イメージファイルまたはそれが存在するフォルダが使用されていないことを確認します。 クリーンアップしてから、プロジェクトをビルドしてから実行してください。

+0

"希望"は非常に効果的な開発方法ではありません。 –

関連する問題