I have written a better implementation for READING and WRITING into a Pk2 Stream directly from C#, it's faster for searching although it does a lot initializing because of the writing stuffs. I sliced a bit of my time to fix everything a few hours ago, so everyone is able to be use it without worries.
Not sure if I should make a new thread just for this library so I'm just leaving a reference to the
[Only registered and activated users can see links. Click Here To Register...] and a little code example for a full usage:
PHP Code:
using (var pk2 = new Pk2Stream("C:\\Silkroad\\VSRO_Client\\Media.pk2", "169841", FileMode.Open))
{
// File content
var file = pk2.GetFile("Type.txt");
var bytes = file.GetContent();
Console.WriteLine(Encoding.UTF8.GetString(bytes) + Environment.NewLine);
// List files from root folder
var root = pk2.GetFolder("");
Console.WriteLine("Files:");
foreach (var path in root.Files.Keys)
{
Console.WriteLine(" - " + path);
}
// List folders from root folder
Console.WriteLine("Folders:");
foreach (var path in root.Folders.Keys)
{
Console.WriteLine(" - " + path);
}
// Add & remove folder
pk2.AddFolder("test/new folder");
pk2.RemoveFolder("test/new folder");
// Add & remove file
pk2.AddFile("test/new file.txt", new byte[] { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64 }); //Hello World
pk2.RemoveFile("test/new file.txt");
}