chromkhroma in goo blog

カエルとお絵描きとプログラムと風邪の四角関係です。

Skype with sqlite3 #STEP2

2017-04-19 00:09:37 | 雑記
SQLite3でSkypeのDBを覗く会
STEP2:SkypeのDB「main.db」の場所をC#で把握する

以下メモ

#-----------------------------------------------#

/**
* C:\Users\[ユーザ名]\AppData\Roaming\Skype\[スカイプID]にmain.dbがある
* ⇒複数のSkypeIDにログインしたことがある場合、
*  "C:\Users\[ログインID]\AppData\Roaming\Skype"に
*  SkypeIDフォルダが複数あるぽい
*/

// "C:\Users\[ユーザ名]\AppData\Roaming"は以下のように取得する(System.~~(~~)の部分)
string dir = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)+"\\Skype";

// まずはSkypeフォルダが存在するかチェック
if(Directory.Exists(dir))
{
// Skypeフォルダ内のサブフォルダを全て取得
IEnumerable<string> subFolders = Directory.EnumerateDirectories(dir, "*");

// サブフォルダを列挙
foreach (string subFolder in subFolders)
{
// サブフォルダ内にmain.dbファイルを持っているディレクトリを取得
string[] files = System.IO.Directory.GetFiles(subFolder, "main.db");

// main.dbファイルを持っているディレクトリを列挙
foreach (string f in files)
{
// SkypeIDを取得したいので、サブフォルダのフォルダ名だけ取り出し
// (もっといい方法があると思う)
// 2017/06/28 追記
// Path.GetFileName(サブフォルダぱす)でいけるっぽい、あとで検証
// フォームにリストボックス(ID:boxSkypeId)を用意したのでそれに表示してみる
boxSkypeId.Items.Add(System.IO.Path.GetDirectoryName(f).Replace(dir+"\\",""));
}
}
}
// Skypeフォルダが無かったらとりあえずリストボックスにメッセージ出しておこうかな・・・
else
{
boxSkypeId.Items.Add("フォルダが存在しません");
boxSkypeId.Items.Add("指定パス:"+dir);
}

#-----------------------------------------------#

つづく
ジャンル:
ウェブログ
コメント   この記事についてブログを書く
この記事をはてなブックマークに追加
« Skype with sqlite3 #STEP1 | トップ |   
最近の画像もっと見る

コメントを投稿


コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

あわせて読む

トラックバック

この記事のトラックバック  Ping-URL
  • 30日以上前の記事に対するトラックバックは受け取らないよう設定されております。
  • 送信元の記事内容が半角英数のみのトラックバックは受け取らないよう設定されております。
  • このブログへのリンクがない記事からのトラックバックは受け取らないよう設定されております。
  • ※ブログ管理者のみ、編集画面で設定の変更が可能です。