The Skype 8 has leveldb which is located inside the folder
C:\Users\machine-user-name\AppData\Roaming\Microsoft\Skype for Desktop\IndexedDB\file__0.indexeddb.leveldb
I am working on c# to read the contents of skype 8 leveldb. Here is my code to open and iterate over all key and value of leveldb.
void IteratorSkypeDb()
{
var path = @"C:\Users\ptandukar\AppData\Roaming\Microsoft\Skype for Desktop\IndexedDB\file__0.indexeddb.leveldb";
Options options = new Options();
using (var db = new DB(options, path))
{
using (var iterator = db.CreateIterator(new ReadOptions()))
{
iterator.SeekToFirst();
while (iterator.IsValid())
{
var key = iterator.KeyAsString();
var value = iterator.ValueAsString();
Console.WriteLine($"{key}-{value}");
iterator.Next();
}
}
}
}
}
But, I got following exception while initializing the DB:
System.UnauthorizedAccessException: 'Invalid argument: idb_cmp1does not match existing comparator : leveldb.BytewiseComparator'
Could any one sheds some light on it?
FYI: I used the sample code from the https://github.com/Reactive-Extensions/LevelDB It has a native project which is not loaded in my VS2017 but I managed to download the leveldb.dll from some other link and copied it to bin\debug folder to run the program.