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は処理されませんでした。別のプロセスによって使用されているため、プロセスはファイル'blahblah'にアクセスできません。
これは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++;
}
}