[KESİN ÇÖZÜM] File İşlemlerinde “İşlem, Başka Bir İşlem Tarafından Kullanıldığından ‘…’ Dosyasına Erişemiyor”

[KESİN ÇÖZÜM] File İşlemlerinde “İşlem, Başka Bir İşlem Tarafından Kullanıldığından ‘…’ Dosyasına Erişemiyor”

10 Eylül 2019 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 45
Yaklaşık okuma süresi : 2 DK
C# Tüm DateTime İşlemleri
C# 'Internet or Restricted zone or having the mark of the web on the file' Hatası ve Çözümü

[KESİN ÇÖZÜM] File İşlemlerinde “İşlem, Başka Bir İşlem Tarafından Kullanıldığından ‘…’ Dosyasına Erişemiyor” Hatası ve Çözümü dersi ile karşınızdayım. Bu sorun her zaman karşımıza çıkan bir sorundur. Bu derste bu soruna kesin olarak çözüm getireceğiz.

[KESİN ÇÖZÜM] File İşlemlerinde “İşlem, Başka Bir İşlem Tarafından Kullanıldığından ‘…’ Dosyasına Erişemiyor” Hatası

Hepimizi zaman zaman projelerimizde dosya okuma, yazma ve silme gibi işlemleri kullanırız. Hatta çok sıkta kullanabiliriz. Bir metin belgesi okuma, bir resim gösterme vs. vs. dışarıdaki herhangi bir dosyayı kullandığımızda bu hatayı en az bir kere almışızdır. Bende onlardan biriyim. Üstelik her seferinde bu hata ile boğuştum durdum. Ancak sonunda en garanti olan ve bu hatanın çıkma ihtimali olmayan bir yol buldum.

Öncelikle File Sınıfından genelde kullandığımız komutlara bakalım bir bakalım.

Advertisements
File.Delete();
File.Create();
File.Open();
...
...

Bu şekilde bir çok kullanım şeklimiz var.

Ancak sadece bu değil. Örneğin bir PictureBox nesnesinde dışarıdan seçtiğimiz bir resmi gösterdiğimizde o resmi kullanıma almış oluyoruz. O resim o anda başka programlar tarafından kullanılamaz hale geliyor. Buna TXT, XML, EXCEL vs. vs. bir çok dosya tipini ekleyebiliriz.

Şimdi gelelim kesin çözümümüze…

 

File İşlemlerinde “İşlem, Başka Bir İşlem Tarafından Kullanıldığından ‘…’ Dosyasına Erişemiyor” ÇÖZÜM

Bu hatanın önüne geçmenin kesin çözümü FileStream kullanmaktır. FileStream ile okuma yazma işlemleri yaptığımızda asla bu hata çıkmayacaktır. Çünkü her seferinde başlattığımız işlemi kapatabiliyoruz. Yani bir dosyayı okuyoruz, işliyoruz ve işimiz bittiğinde kapatıyoruz. Olay bu kadar. Şimdi size örnek bir kod vereyim.

FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
pictureEdit1.Image = Image.FromStream(fs);
fs.Flush();
fs.Close();

///...

Image img = (Image)pictureEdit1.Image.Clone();
img.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);

///...
            
FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
pictureEdit1.Image = Image.FromStream(fs);
fs.Flush();
fs.Close();

///...

File.Delete(path);

 

  1. Öncelikle path değişkenindeki yolda yer alan resmi picturebox nesnesinde gösterdim.
    1. BUrada ilgili resmi kullanıma aldık. Artık o resmi silme ya da taşıma gibi bir işlem yapamayız.
  2. PictureBox nesnesindeki resmi bir image türü değişkene yükledim
  3. Sonra PictureBox’taki resmi yeni bir resim olarak kaydettim.
  4. FileStream ile yeni kaydettiğim resmi okudum
  5. Picture Edit nesnesinde yeni resmimi gösterdim
  6. FileStream’ı boşalttım ve kapattım
  7. Dosyayı sildim.
İlgili İçerik  C# ComboBox TXT Dosyası ile Doldurma

Burada eğer arada file stream kullanmamış olsaydım o resmi silmem mümkün olmayacaktı. Çünkü yukarıdaki hatayı vermiş olacaktı.


Bu dersimizde bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere…

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Takipte ve Sağlıcakla kalın. 😉

C# Tüm DateTime İşlemleri
C# 'Internet or Restricted zone or having the mark of the web on the file' Hatası ve Çözümü