cookieファイルの除去

解決


香良洲  2010-02-10 04:15:19  No: 143227

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


魔界の仮面弁士  2010-02-10 05:14:17  No: 143228

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-10 05:17:25  No: 143229

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

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


香良洲  2010-02-10 05:45:24  No: 143230

魔界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 10:31:52  No: 143231

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


香良洲  2010-02-12 07:14:10  No: 143232

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加