static void Main(string[] args) { // var cc = new Symmetric(Aes.Create()); // for (var i = 1; i < 2000; i++) // { // var buff = Enumerable.Range(0, i).Select(p => (byte) (p & 0xFF)).ToArray(); // var b = cc.Encrypt(buff); // var z = cc.Decrypt(b); // // var b2 = cc.Encrypt(buff); // var z2 = cc.Decrypt(b); // } var aes = Aes.Create(); aes.GenerateKey(); aes.GenerateIV(); var fileName = Path.Combine(@"D:\test2.container"); if (File.Exists(fileName)) { File.Delete(fileName); } var text = string.Join(Environment.NewLine, Enumerable.Range(0, 15).Select(p => $"Hello, line #{p}, Текст, κείμενο, ਟੈਕਸਟ, random guid: {Guid.NewGuid()}")); const int maxItems = 50; using (var pc = new PersistentContainer(fileName, new PersistentContainerSettings(256).With(aes))) { foreach (var itemId in Enumerable.Range(0, maxItems)) { var path = (itemId / 10).ToString("D4"); pc.Put($"/{path}/item{itemId}", text); } } using (var pc = new PersistentContainer(fileName, new PersistentContainerSettings(256).With(aes))) { Console.WriteLine("File length: {0} bytes, entries: {1}", pc.Length, pc.Find().Length); Console.WriteLine(); var mask = "/004?/*"; var entries = pc.Find(mask); Console.WriteLine("Found {0} items with mask: {1}, show first 10:", entries.Length, mask); foreach (var entry in entries.Take(10)) { var item = pc.GetString(entry.Name); Console.WriteLine(entry); } } }
static void Main(string[] args) { var fileName = Path.Combine(Path.GetTempPath(), "test.container"); if (File.Exists(fileName)) { File.Delete(fileName); } using (var pc = new PersistentContainer(fileName, new PersistentContainerSettings(256))) { pc.Put("item1", "Hello"); pc.Put("item2", "User"); // overwrite item1: pc.Put("item1", "Bye!"); pc.Append("item1", "See you later!"); pc.Delete("item2"); pc.Put("item3", "another item"); } using (var pc = new PersistentContainer(fileName, new PersistentContainerSettings(256))) { var entries = pc.Find(); foreach (var entry in entries) { Console.WriteLine(entry); } Console.WriteLine(); foreach (var entry in entries) { Console.WriteLine("{0}: {1}", entry.Name, pc.GetString(entry.Name)); } } }