cookieファイルの除去

解決


香良洲  2010-02-09 19:15:19  No: 143227  IP: [192.*.*.*]

クッキーファイルの除去をしたいのですが
C:\Documents and Settings\ユーザ名\Cookies
この中にあるファイルを除去したいのですが
  IO.Directory.Delete(ファイルパス, True)
これは単体のファイルを除去する上
パスが明確でなければいけません。
cookieファイルのパスは
パソコンのユーザー名ごとに違うため
割り当てることができません。
cookieフォルダにはいっているファイルをすべて除去する
方法を教えてください

編集 削除
魔界の仮面弁士  2010-02-09 20:14:17  No: 143228  IP: [192.*.*.*]

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

編集 削除
魔界の仮面弁士  2010-02-09 20:17:25  No: 143229  IP: [192.*.*.*]

> ClearMyTracksByProcessW(Me.Handle, hInstance, "8", AppWinStyle.NormalFocus)

間違い、"8" はインターネット一時ファイルでした。
Cookie の場合は "2" を指定しておいてください。

編集 削除
香良洲  2010-02-09 20:45:24  No: 143230  IP: [192.*.*.*]

魔界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ではできないのでしょうか?

編集 削除
YuO  2010-02-10 01:31:52  No: 143231  IP: [192.*.*.*]

System.IO.File.Deleteはその名の通り,(単一の) ファイルを削除するメソッドです。
System.IO.Directory.Deleteであれば,ディレクトリと含まれるファイルやディレクトリを削除できますが,Cookieディレクトリを削除するのは問題です。
System.IO.Directory.GetFilesやSystem.IO.Directory.GetDirectoriesでCookieディレクトリにあるファイルやディレクトリを列挙して,一個ずつ削除してみてはどうでしょうか。

編集 削除
香良洲  2010-02-11 22:14:10  No: 143232  IP: [192.*.*.*]

ありがとうございます。解決しました
荒らしのレスがなくなってますね。管理人さんも時々ここにくるのですね

編集 削除