Turkıye anlasması
Kilopat
- Katılım
- 12 Mayıs 2016
- Mesajlar
- 1.192
- Çözümler
- 5
[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” Hatası ve Çözümü dersi ile karşınızdayım. Bu sorun her zaman karşımıza çıkan...
mustafabukulmez.com
C#:
private void button2_Click(object sender, EventArgs e)
{
using (var folderDialog = new FolderBrowserDialog())
{
if (folderDialog.ShowDialog() != DialogResult.OK)
{
return;
}
var files = Directory.GetFiles(folderDialog.SelectedPath, "*", SearchOption.AllDirectories);
progressBar1.Maximum = files.Length;
progressBar1.Value = 0;
foreach (var filePath in files)
{
using (var md5 = MD5.Create())
{
using (var fileStream = File.OpenRead(filePath))
{
var hash = md5.ComputeHash(fileStream);
var hashString = BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
if (IsFileInfected(hashString))
{
ListViewItem item = new ListViewItem(new[] { filePath, "Infected" });
listView1.Items.Add(item);
if (MessageBox.Show("The file is infected. Do you want to delete it?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
bool deleted = false;
int retries = 10;
while (!deleted && retries > 0)
{
try
{
File.Delete(filePath);
deleted = true;
MessageBox.Show("The file has been deleted successfully.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (IOException ex)
{
retries--;
System.Threading.Thread.Sleep(500);
if (retries == 0)
{
MessageBox.Show("Failed to delete the file. The file is in use by another process. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show("Failed to delete the file. You do not have permission to delete this file. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
catch (Exception ex)
{
MessageBox.Show("Failed to delete the file. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
}
}
}
else
{
ListViewItem item = new ListViewItem(new[] { filePath, "Clean" });
listView2.Items.Add(item);
}
}
}
progressBar1.Value++;
}
}
MessageBox.Show("Folder scan complete.");
}
C#:
private void button2_Click(object sender, EventArgs e)
{
using (var folderDialog = new FolderBrowserDialog())
{
if (folderDialog.ShowDialog() != DialogResult.OK)
{
return;
}
var files = Directory.GetFiles(folderDialog.SelectedPath, "*", SearchOption.AllDirectories);
progressBar1.Maximum = files.Length;
progressBar1.Value = 0;
foreach (var filePath in files)
{
using (var md5 = MD5.Create())
{
using (var fileStream = File.Open(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.Delete))
{
var hash = md5.ComputeHash(fileStream);
var hashString = BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
if (IsFileInfected(hashString))
{
ListViewItem item = new ListViewItem(new[] { filePath, "Infected" });
listView1.Items.Add(item);
if (MessageBox.Show("The file is infected. Do you want to delete it?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
try
{
fileStream.Close();
File.Delete(filePath);
MessageBox.Show("The file has been deleted successfully.", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show("Failed to delete the file. You do not have permission to delete this file. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (IOException ex)
{
MessageBox.Show("Failed to delete the file. The file is in use by another process. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (Exception ex)
{
MessageBox.Show("Failed to delete the file. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
else
{
ListViewItem item = new ListViewItem(new[] { filePath, "Clean" });
listView2.Items.Add(item);
}
}
}
progressBar1.Value++;
}
}
MessageBox.Show("Folder scan complete.");
}
Kopyalamaya izin vermeyen siteler kalitelidir. Unutmayın.
Son düzenleyen: Moderatör: