예제 #1
0
        public ActionResult Index()
        {
            FileDB.CreateEmptyFile(pathDB, true);

            var files = FileDB.ListFiles(pathDB);

            ViewData["TotalFiles"] = files.Length;

            return(View(files.Take(200).ToArray()));
        }
예제 #2
0
파일: Program.cs 프로젝트: enginekit/FileDB
        static void Test1()
        {
#if NET20
            //---------------------------------------------------------------------------
            string testfile = @"d:\\WImageTest\\testdb.dat";
            //test store in the same file name
            EntryInfo en1 = FileDB.Store(testfile, "/usr/test/d1/aaaaaaaaa/bbbbbbbbb/ccccccccddddddddddddddd.a.txt", GenerateTestDataBuffer("hello!...1"));
            EntryInfo en2 = FileDB.Store(testfile, "/usr/test/d1/aaaaaaaaa/bbbbbbbbb/ccccccccddddddddddddddd.a.txt", GenerateTestDataBuffer("hello!...2"));
            EntryInfo en3 = FileDB.Store(testfile, "/usr/test/d1/aaaaaaaaa/bbbbbbbbb/ccccccccddddddddddddddd.a.txt", GenerateTestDataBuffer("hello!...3"));
            EntryInfo en4 = FileDB.Store(testfile, "/usr/test/d1/aaaaaaaaa/bbbbbbbbb/ccccccccddddddddddddddd.a.txt", GenerateTestDataBuffer("hello!...4"));
            EntryInfo en5 = FileDB.Store(testfile, "/usr/test/d1/aaaaaaaaa/bbbbbbbbb/ccccccccddddddddddddddd.a.txt", GenerateTestDataBuffer("hello!...5"));
            //---------------------------------------------------------------------------
            EntryInfo[] fileList = FileDB.ListFiles(testfile);

            using (MemoryStream ms = new MemoryStream())
            {
                //test read file and metadata
                //EntryInfo enInfo = FileDB.Read(testfile, en5.ID, ms);

                FileDB.ReadFileContent(testfile, fileList[0], ms);
                string content = System.Text.Encoding.UTF8.GetString(ms.ToArray());

                //read only file metadata
                //EntryInfo enInfo = FileDB.ReadMetadata(testfile, en5.ID);


                ms.Close();
            }

            //foreach (var f in fileList)
            //{
            //    FileDB.Delete(testfile, en1.ID);
            //}
            //---------------------------------------------------------------------------
            fileList = FileDB.ListFiles(testfile);
#else
            //
            // Parallel Insert
            //
            string   dbFile = @"C:\Temp\MvcDemo.dat";
            string[] files  = new string[] {
                @"C:\Temp\DSC04901.jpg", @"C:\Temp\DSC04902.jpg", @"C:\Temp\ZipFile.zip"
            };
            Parallel.For(0, 3, (i) =>
            {
                Console.WriteLine("Starting " + Path.GetFileName(files[i]));
                FileDB.Store(dbFile, files[i]);
                Console.WriteLine("Ended " + Path.GetFileName(files[i]));
            });
            Console.ReadLine();
#endif
        }
예제 #3
0
        public ActionResult DeleteAll()
        {
            using (var db = new FileDB(pathDB, FileAccess.ReadWrite))
            {
                var ent = db.ListFiles();

                foreach (var e in ent)
                {
                    db.Delete(e.ID);
                }
            }

            return(RedirectToAction("Index"));
        }
예제 #4
0
파일: Program.cs 프로젝트: enginekit/FileDB
        static void Test3()
        {
            string dbFileName = @"d:\\WImageTest\\testdb3.dat";

#if DEBUG
            if (File.Exists(dbFileName))
            {
                File.Delete(dbFileName);
            }
#endif

            using (var db = new FileDB(dbFileName, FileAccess.ReadWrite))
            {
                byte[] docStream = TestGenLqDocStream();
                //save
                using (var dataStream = new MemoryStream(docStream))
                {
                    db.Store(dbFileName, dataStream);
                    db.Flush();
                }
            }

            //test read file
            //and generate liquid document
            using (var db = new FileDB(dbFileName, FileAccess.ReadWrite))
            {
                EntryInfo[] prevFiles = db.ListFiles();
                //test read file
                using (MemoryStream ms = new MemoryStream())
                {
                    db.Read(prevFiles[0].ID, ms);
                    ms.Position = 0;

                    //convert data to document
                    var docDeser = new LiquidDocumentDeserializer();
                    var reader   = new BinaryReader(ms);
                    docDeser.SetBinaryReader(reader);
                    docDeser.ReadDocument();
                    LiquidDoc result = docDeser.Result;
                    ms.Close();
                }
            }
        }
예제 #5
0
        public FileDBStorageProvider(string filename)
        {
            filedb = new FileDB(filename, System.IO.FileAccess.ReadWrite);
            EntryInfo[] entryInfoArr = filedb.ListFiles();

            //
            foreach (EntryInfo en in entryInfoArr)
            {
                //replace with latest datatime
                string fileUrl = en.FileUrl;
                if (!_allFiles.ContainsKey(fileUrl))
                {
                    _allFiles[en.FileUrl] = en;
                }
                else
                {
                    //?
                }
            }
        }
예제 #6
0
파일: Program.cs 프로젝트: enginekit/FileDB
        static void Test2()
        {
            //------------------------------------------------------------------------------
            string dbFileName = @"d:\\WImageTest\\testdb2.dat";

            //EntryInfo[] fileList2 = FileDB.ListFiles(dbFileName);
            //var filename1 = fileList2[0].FileUrl;

            //1. open
            byte[] inputBuffer = GenerateTestDataBuffer("hello!...1");
            List <SampleStoreRequest> storeReqs = new List <SampleStoreRequest>()
            {
                new SampleStoreRequest("a01", GenerateTestDataBuffer("hello_a01")),
                new SampleStoreRequest("a02", GenerateTestDataBuffer("hello_a02")),
                new SampleStoreRequest("a03", GenerateTestDataBuffer("hello_a03")),
                new SampleStoreRequest("a04", GenerateTestDataBuffer("hello_a04")),
                new SampleStoreRequest("a05", GenerateTestDataBuffer("hello_a05"))
            };


            using (var db = new FileDB(dbFileName, FileAccess.ReadWrite))
            {
                EntryInfo[] prevFiles = db.ListFiles();
                int         j         = storeReqs.Count;
                for (int i = 0; i < j; ++i)
                {
                    SampleStoreRequest req = storeReqs[i];
                    using (var dataStream = new MemoryStream(req.buffer))
                    {
                        EntryInfo en = db.Store(req.fileName, dataStream);
                        db.Flush();
                    }
                }
            }

            //------------------------------------------------------------------------------
            //test read back
            EntryInfo[] fileList = FileDB.ListFiles(dbFileName);
        }