HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0425
haniwin7でftpgetするとキャッシュを拾ってしまいます3解決


hani

リンク

2014/4/25(Fri) 16:39:43|NO.61676

hspinetでの質問です。

サーバ内蔵の計測機器より、ログファイルを30分おきに取得するソフトを運用しています
(ftpgetで取得し、取得後は毎回ファイルを削除し、機器が新たに同じファイル名で再生成します)

PCのosをxpから7にしたところ、2回目以降のftpgetで、前回のキャッシュファイルを
取ってくるようになってしまいました。

毎回netinit/ftpopen〜取得後にftpdeleteをかけてcloseしています。
ftpdeleteは実際にアクセスするようで、2回目以降はファイルが存在しないとエラーになりますが
再度ftpgetすると、既に存在しない初回のファイルが
数時間経過してもダウンロードされてしまいます。

別途IEを開いて、一時ファイルを削除したり
プログラムを閉じて再起動するとキャッシュは消えるようです。

hsp以外でも同じような質問があり、どれも解決に至っていませんでした
http://qa.itmedia.co.jp/qa8257728.html

なので、dllの仕様なのかもしれませんが
なんとかキャッシュをさせない方法はないでしょうか・・・



この記事に返信する


ヒラギノ

リンク

2014/4/25(Fri) 17:03:54|NO.61677


#uselib "wininet.dll" #func DeleteUrlCacheEntry "DeleteUrlCacheEntryA" str DeleteUrlCacheEntry "URL"

で削除できると思います。
Library を作るときは、これを利用しました。



hani

リンク

2014/4/25(Fri) 19:32:55|NO.61680

返信ありがとうございます。
該当ftpへのアクセスはipアドレス指定で行ってたので、
urlを"192.168.1.100"や、"ftp://USER@192.168.1.100"のようにしてみましたが
うまくいきませんでした 試行錯誤中です・・

また、教えて頂いた"DeleteUrlCacheEntry"で検索したところ、新たな情報がいろいろヒットしたので
頑張って調べてみます。ありがとうございます。



hani

リンク

2014/4/26(Sat) 12:42:29|NO.61692

結局うまくいきませんでした・・
どうもvista以降だと、URLではなくローカルファイル名指定に変わってるというトピックがあり
互換性がなくなってるかもしれません (ファイルパスを知る方法がわからず)

DeleteUrlCacheEntry does not work on Vista
http://social.msdn.microsoft.com/Forums/vstudio/en-US/3e10e206-4699-4285-9f3e-dd2ba25778dd/deleteurlcacheentry-does-not-work-on-vista?forum=csharpgeneral


スマートではないですが、キャッシュクリアのコマンドを見つけたので
毎回ieのキャッシュをクリアする方法で強引に解決しました

exec "RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8" を毎回実行

IE7以降のみですがXPでは症状が出ないので大丈夫かと思います

これはos起因の不具合として、ヘルプに記載したほうがいいような気がします



ONION software Copyright 1997-2023(c) All rights reserved.