for (int i = 0; i < PrefixDistinctCount; i++)
{
string FirstPolicy = "";
FirstPolicy = OriginalPics[0].ToString().Substring(26, 7);
var SamePoliciesQuery = OriginalPics.Where(x => Path.GetFileName(x).StartsWith(FirstPolicy));
foreach (string picture in SamePoliciesQuery)
{
File.Move(picture, AppVars.ProcessingPolicyImagesDirectory + picture.Substring(26, 12) + ".jpg");
}
string[] SamePolicyPics = Directory.GetFiles(AppVars.ProcessingPolicyImagesDirectory);
GenerateTiffFile(SamePolicyPics);
Directory.Delete(AppVars.ProcessingPolicyImagesDirectory, true);
Directory.CreateDirectory(AppVars.ProcessingPolicyImagesDirectory);
OriginalPics = Directory.GetFiles(SelectedDirectory);
}
朝向它指出「Directory.Delete(AppVars.ProcessingPolicyImagesDirectory,true);」我收到一個錯誤,它不允許我刪除該文件。我在猜測這是因爲代碼中的某些內容沒有關閉文件,或者沒有。有誰知道可能是什麼情況?或者我會如何去使用「使用」來解決這個問題?
無法刪除文件,因爲它正在被另一個進程使用
IOException未處理。該進程無法訪問文件'blah blah',因爲它正在被另一個進程使用。
這是GenerateTiffFile代碼 -
public void GenerateTiffFile(string[] SamePolicyPics)
{
ImageCodecInfo info = null;
foreach (ImageCodecInfo ice in ImageCodecInfo.GetImageEncoders())
if (ice.MimeType == "image/tiff")
info = ice;
Encoder enc = Encoder.SaveFlag;
EncoderParameters ep = new EncoderParameters(1);
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
Bitmap pages = null;
int frame = 0;
foreach (string picture in SamePolicyPics)
{
if (frame == 0)
{
pages = (Bitmap)Image.FromFile(picture);
//pages.Save(picture.Substring(0, picture.Length - 3) + "tiff", info, ep);
pages.Save(AppVars.FinalPolicyImagesDirectory + picture.Substring(29, 7) + ".tiff", info, ep);
}
else
{
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
Bitmap bm = (Bitmap)Image.FromFile(picture);
pages.SaveAdd(bm, ep);
}
if (frame == SamePolicyPics.Length - 1)
{
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
pages.SaveAdd(ep);
}
frame++;
}
}
萬一你有圖片打開?我已經做了幾次:) – 2012-07-27 13:19:11
哈哈,不,我不知道。 (即使關閉文件夾),仍然是同樣的問題:( – Testifier 2012-07-27 13:20:41
請指定您正在使用的編程語言。是否這是C#? – Hassan 2012-07-27 13:24:23