ben (muhtemelen bilginin benim eksikliği) garip bir sorun ile şaşırıp kapalı olduğunda bile siler. Eğer bu kodu f ile çalıştırırsam, f bir mediaplayerda oynayan bir video dosyasıdır, istisna atar. Bu iyi çalışıyor ve beklendiği gibi. Şimdi mediaplayer'ı kapattığımda dosyayı siler !? Uygulamam uzun süre kapalı olsa bile. Visual Studio'yu kapattığımda bile, mediaplayer'ı kapattığımda dosyayı siler. Dosyanın bir noktada silindiğinden emin olmak için bir yere kurulum yapılır. Bu durum istenmeyen davranışlarda. Ben hala Sil ve MoveTo arasında daha iyi yapabileceğini biliyorumSil fonksiyonları çağıran uygulaması Ben söz konusu kodu sunmak,
if (!IsFileLocked(f))
{
try
{
f.Delete();
fTemp.MoveTo(f.FullName);
Console.WriteLine("INFO: Old file deleted new file moved in > {0}", f.FullName);
}
catch (IOException ex)
{
Console.WriteLine("ERROR: Output file has IO exception > {0}", f.FullName);
Environment.ExitCode = 1;
}
catch (UnauthorizedAccessException ex)
{
Environment.ExitCode = 2;
Console.WriteLine("ERROR: Output file is locked > {0}", f.FullName);
}
}
else
{
Environment.ExitCode = 3;
Console.WriteLine("ERROR: Couldn't delete file was locked");
}
ama şimdi benim değişiklikleri alacağım: Ama
Sonucu şimdilik ... tam ters giderse ne olduğunu anlamaya olamaz , av tüfeği kodlama .....
Ortam yürütücüsü büyük olasılıkla dosyayı "FILE_SHARE_DELETE" ile açmıştır; Dosya silinmek üzere işaretlenir ve medya yürütücü dosyayı kapattığında silme işlemi tamamlanır. –
IOException ile verilen mesaj nedir? –
Fakat sonra istisnanın yükseltilemeyeceğini umuyorum. Ayrıca, kitabımdaki dosyaların kilitli bir şekilde kilitlendiği Windows Media Player ile açtım ... ya da demek istediğin bayrakla aynı değil. – JHN