نقل قول: مشکل در Delete کردن فایل
این خطا میگه که PDF توسط برنامه دیگری در حال استفاده است ، یا اینکه میخواین یک PDF رو که باز هست حذف کنید
نقل قول: مشکل در Delete کردن فایل
احتمالا در تابع ExtractTextFromPDF فایل رو باز میکنید ولی آزادش نمیکنید اگر این تابع از پروسس دیگه ای استفاده میکنه باید اون پروسس بسته شه (فکر کنم میشه بدون بستن هم فایل رو آزاد کرد) یا اگر پروسه شما اون رو باز کرده خودتون ببندید یا دسترسی رو تغییر بدین.
نقل قول: مشکل در Delete کردن فایل
خیلی محبت کردین ، اما این مطلب که فرمودید برگردان فارسی همون پیغام هستش ، راه کار شما چیه ؟
اینم همون تیکه کد فرخوان PDF هستش ، که تو خط 17 فرخوانش می کنم
public static string ExtractTextFromPdf(string path)
{
PdfReader reader = new PdfReader(path);
StringBuilder text = new StringBuilder();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
text.Append(PdfTextExtractor.GetTextFromPage(reade r, i));
}
return text.ToString();
}
نقل قول: مشکل در Delete کردن فایل
مشکل و پیدا کردم و حل شد : گفتم بگم اینجا که شاید به کار دوستان بیاید .
نکته در استفاده از دستور Using هستش ، خودش اتوماتیک Dispose میکنه تابع رو .
یعنی در هنگام تعریف متدم که برای extrac کردن PDF نوشته بودم ، از دستور زیر اسفتاده کردم :
public static string ExtractTextFromPdf(string path)
{
using (PdfReader reader = new PdfReader(path))
{
StringBuilder text = new StringBuilder();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
text.Append(PdfTextExtractor.GetTextFromPage(reade r, i));
}
return text.ToString();
}
}
نقل قول: مشکل در Delete کردن فایل
شما که کد نزاشته بودین از کجا باید فهمید چیکار کردید که بشه راهنمایی کرد.
توی این مورد شما متد Close یا Dispose رو باید بعد از اتمام کار صدا میکردین که نکردید (using خودش این کار رو میکنه.)