こんにちは。
今、Inidy9.0のTIdPop3コンポーネントを用いてメールの受信ソフトをつくっています。
受信自体には問題ないのですが、受信動作と同時に"C:\Documents and Settings\ユーザ名\Local Settings\Temp"フォルダに"*.tmp"というファイルが次々と作成されてしまいます。
長い間使っているとディスクを圧迫する気がするのですが、このファイルを作成しない方法はありますか。または、手動で消去しなければならないのでしょうか。
よろしくお願いします。
こちらの環境では、*.tmpは増えませんね、自前のコードで保存しない限り。
他のソフトが増やしているという可能性はありませんか?
訂正。
添付ファイルがあるとできますね。
NoDecodeがFalseのときに、メッセージはデコードされ、MessagePartsに入ります。
このとき、TIdAttachmentが作成され、*.tmpも作られるようです。
妙な箇所が見つかりました。
TIdAttachment.Createでは、引数AFileNameから、FStoredPathname、FFilenameを設定しています。
デバッガで見ると、*.tmpのフルパスは、StoredPathnameに入っています。
しかし、FileNameには、実際の添付ファイルの名前が入っています。
TIdAttachment.Destroyで、FileIsTempFileがTrueのとき、「ファイル名がFileNameのファイルを」削除しています。
ここをStoredPathnameにすればよいかと思います。
ただ、FileIsTempFileは、POP3で読み込んだばかりのときはFalseですので、MessagePartsが1つ以上あったなら、それらをチェックして、TIdAttachmentであれば、FileIsTempFileをTrueにする必要があります。
ありがとうございました。
TIdAttachmentのとき、FileIsTempFileをTrueにして、
添付ファイルをダウンロードした後にFileNameをStoredPathnameに
変更するとうまく行きました。
ツイート | ![]() |