Tôi đang chọn tệp từ openfiledialoge và hiển thị nó trong picturebox và tên của nó trong hộp văn bản khi tôi nhấp vào nút delete
Tôi nhận được ngoại lệ The process cannot access the file because it is being used by another process.
Tôi đã tìm kiếm rất nhiều ngoại lệ này để được giải quyết nhưng tôi không tốt bất kỳ người trong số họ làm việc, khi tôi đã cố gắng đóng tập tin với imagename đó là trong textbox tức là tập tin tôi đang hiển thị trong picturebox; sử dụng IsFileLocked
phương pháp, điều này đóng cửa và xóa tất cả các file của đường dẫn thư mục cụ thể, nhưng làm thế nào tôi có thể xóa các tập tin chỉ được hiển thị trong picturebox, nơi tôi đang đi saiXóa Tệp được hiển thị trong picturebox
public partial class RemoveAds : Form
{
OpenFileDialog ofd = null;
string path = @"C:\Users\Monika\Documents\Visual Studio 2010\Projects\OnlineExam\OnlineExam\Image\"; // this is the path that you are checking.
public RemoveAds()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (System.IO.Directory.Exists(path))
{
ofd = new OpenFileDialog();
ofd.InitialDirectory = path;
DialogResult dr = new DialogResult();
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Image img = new Bitmap(ofd.FileName);
string imgName = ofd.SafeFileName;
txtImageName.Text = imgName;
pictureBox1.Image = img.GetThumbnailImage(350, 350, null, new IntPtr());
ofd.RestoreDirectory = true;
}
}
else
{
return;
}
}
private void button2_Click(object sender, EventArgs e)
{
//Image img = new Bitmap(ofd.FileName);
string imgName = ofd.SafeFileName;
if (Directory.Exists(path))
{
var directory = new DirectoryInfo(path);
foreach (FileInfo file in directory.GetFiles())
{ if(!IsFileLocked(file))
file.Delete();
}
}
}
public static Boolean IsFileLocked(FileInfo path)
{
FileStream stream = null;
try
{ //Don't change FileAccess to ReadWrite,
//because if a file is in readOnly, it fails.
stream = path.Open (FileMode.Open, FileAccess.Read, FileShare.None);
}
catch (IOException)
{ //the file is unavailable because it is:
//still being written to or being processed by another thread
//or does not exist (has already been processed)
return true;
}
finally
{
if (stream != null)
stream.Close();
}
//file is not locked
return false;
}
}
Cảm ơn trước sự giúp đỡ nào
Tôi đang lưu hình ảnh bằng cách sử dụng một biểu mẫu khác, vì vậy, có cần thiết phải vứt bỏ hình ảnh sau khi lưu hay chỉ vào thời điểm truy xuất lại và xóa hình ảnh đó không? – Durga
@ Durga Tôi không hiểu ý bạn là gì. Nếu bạn có một câu hỏi khác, việc đăng câu hỏi khác là lựa chọn tốt nhất - hãy hiển thị mã bạn đang nói đến ở đó. Trong trường hợp này (ở trên) biến cục bộ 'img' đang được xử lý - thể hiện của đối tượng' Bitmap', không phải là tệp mà nó được tạo ra. Bạn không sử dụng nó sau này bởi vì nó là một biến địa phương và nó đi ra khỏi phạm vi. –
tôi đã nhận nó những gì bạn giải thích, Đây là câu trả lời rất sạch sẽ và gọn gàng giải thích, có chính xác làm thế nào tôi shold làm điều đó theo cách đúng Cảm ơn bạn rất nhiều – Durga