EPPlus を使用してスプレッドシートを開き、写真や情報を入力しています。スプレッドシートに入力するために使用したすべての画像を含むフォルダーを削除しようとすると、このファイルが別のアプリケーションで使用されているというエラーが表示されます。使用したオブジェクトを解放してスプレッドシートを閉じる正しい方法はどれですか?
using (var package = new ExcelPackage(existingFile))
{
ExcelWorkbook workBook = package.Workbook;
if (workBook != null)
{
if (workBook.Worksheets.Count > 0)
{
int i = 0;
foreach(ExcelWorksheet worksheet in workBook.Worksheets)
{
xlWorkSeet1[i] = worksheet;
i = i + 1;
}
}
}
//More code ...
FileStream aFile = new FileStream(tempFolderPathAlt + saveas + ".xls", FileMode.Create);
byte[] byData = package.GetAsByteArray();
aFile.Seek(0, SeekOrigin.Begin);
aFile.Write(byData, 0, byData.Length);
aFile.Close();
xlWorkSeet1 = null;
workBook = null;
}//End using
String P = Path.Combine(tempFolderPathAlt, "ExtractedFiles");
bool directoryExists = Directory.Exists(P);
if (directoryExists)
Directory.Delete(P, true); // deletes sub-directories
スプレッドシートに追加した写真を削除しようとすると、エラーが発生します。