クッキーファイルの除去をしたいのですが
C:\Documents and Settings\ユーザ名\Cookies
この中にあるファイルを除去したいのですが
IO.Directory.Delete(ファイルパス, True)
これは単体のファイルを除去する上
パスが明確でなければいけません。
cookieファイルのパスは
パソコンのユーザー名ごとに違うため
割り当てることができません。
cookieフォルダにはいっているファイルをすべて除去する
方法を教えてください
Process クラスから、
Process.Start("rundll32", "inetcpl.cpl,ClearMyTracksByProcess 2")
を呼び出せば、cookie を削除できるかと思います。
もしくは、ClearMyTracksByProcess API を直接呼び出しても可。
以下は VB6 からの呼び出し例。
http://yaplog.jp/orator/archive/84
VB.NET だと、こうかな。
Private Declare Unicode Function ClearMyTracksByProcessW Lib "InetCpl.cpl" _
(ByVal hwnd As IntPtr, _
ByVal hinst As IntPtr, _
ByVal lpszCmdLine As String, _
ByVal nCmdShow As AppWinStyle) As Integer
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim hInstance As IntPtr = Marshal.GetHINSTANCE( _
System.Reflection.Assembly.GetExecutingAssembly().GetModules()(0))
ClearMyTracksByProcessW(Me.Handle, hInstance, "8", AppWinStyle.NormalFocus)
End Sub
> ClearMyTracksByProcessW(Me.Handle, hInstance, "8", AppWinStyle.NormalFocus)
間違い、"8" はインターネット一時ファイルでした。
Cookie の場合は "2" を指定しておいてください。
魔界s回答ありがとうございます
解決済みにされてしまったので仕方なくあれから
逆引き大全でいろいろ調べてたり
ネットですみずみまで調べたら
IO.File.Delete(System.Environment.GetFolderPath(Environment.SpecialFolder.Cookies))
System.Environment.GetFolderPath(Environment.SpecialFolder.Cookies)
これでクッキーの保存フォルダのパスを割り当てることができて
あとはそこのパスを除去するので
IO.File.delete()で指定してあげて
いざデバッグしたら
C:\Documents and Settings\username\Cookiesへのアクセスが拒否されましたと表示されエラーが出てしまいました。
なぜでしょうか・・・。
IO.File.DeleteでEnvironment.SpecialFolder.Cookiesを除去する場合
cookieというフォルダが除去されてしまうのでしょうか?
cookieというフォルダの中だけを除去するには
File.deleteではできないのでしょうか?
System.IO.File.Deleteはその名の通り,(単一の) ファイルを削除するメソッドです。
System.IO.Directory.Deleteであれば,ディレクトリと含まれるファイルやディレクトリを削除できますが,Cookieディレクトリを削除するのは問題です。
System.IO.Directory.GetFilesやSystem.IO.Directory.GetDirectoriesでCookieディレクトリにあるファイルやディレクトリを列挙して,一個ずつ削除してみてはどうでしょうか。
ありがとうございます。解決しました
荒らしのレスがなくなってますね。管理人さんも時々ここにくるのですね
ツイート | ![]() |