C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: プロセスが残っているファイルを特定し削除


(過去ログ 92 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■54968 / inTopicNo.1)  プロセスが残っているファイルを特定し削除
  
□投稿者/ akito (1回)-(2010/11/11(Thu) 20:16:08)

分類:[.NET 全般] 

vb.net,postgresにて、開発を行っています。

現在、vb.netにてテンプレートとしてある、エクセルをコピーし、開き、閉じた後にそのファイルを削除する処理があります。

workフォルダにそのワークファイルを作成してます。
最終的に、フォルダ内のファイルを削除する処理をしているのですが、
「System.IO.File.Delete(fname)」
ところで、プロセスが残っていて削除できません。

オブジェクトの開放漏れもあると思うのですが、残っているプロセスから特定のファイルを指定しファイルを削除することは出来ないのでしょうか?

引用返信 編集キー/
■54972 / inTopicNo.2)  Re[1]: プロセスが残っているファイルを特定し削除
□投稿者/ shu (173回)-(2010/11/11(Thu) 21:52:47)
No54968 (akito さん) に返信
> vb.net,postgresにて、開発を行っています。
>
> 現在、vb.netにてテンプレートとしてある、エクセルをコピーし、開き、閉じた後にそのファイルを削除する処理があります。
>
> workフォルダにそのワークファイルを作成してます。
> 最終的に、フォルダ内のファイルを削除する処理をしているのですが、
> 「System.IO.File.Delete(fname)」
> ところで、プロセスが残っていて削除できません。
>
> オブジェクトの開放漏れもあると思うのですが、残っているプロセスから特定のファイルを指定しファイルを削除することは出来ないのでしょうか?
>
ファイルをExcelプロセスがつかんでいるのなら、まずファイル(workbook)を閉じる処理を修正する必要がありそうです。
そうすれば少なくともファイルの削除は可能です。
Excelプロセスが残ってしまうのは、推測の通り解放漏れです。Marshal.ReleaseComObjectをしっかり呼びどうしても解放しきれなければ
Excelプロセスを終了です。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -