public static void Create(string fileStorageName, CreateFileStorageBehaviour createFileStorageBehaviour)
 {
     FileStorageHandler.Create(fileStorageName, FileStorageFeatureFactory.GetDefaultFeatures(), createFileStorageBehaviour);
 }
Exemple #2
0
        public static void Dir
        (
            [Required] string fileStorageName,
            [Required] string quickOrVerbose
        )
        {
            bool verbose = quickOrVerbose.ToLower().Equals("verbose");

            var sourceFileStorageHandler = FileStorageHandler.Open(fileStorageName);
            var features = FileStorageFeatureFactory.CreateFileStorageFeatureList(sourceFileStorageHandler.DataFileHeaderStruct.fileStorageFeatures);

            if (verbose && !sourceFileStorageHandler.SupportsFeature(FileStorageFeatureEnum.StoreMetaData))
            {
                Console.WriteLine();
                Console.WriteLine("The datastore does not support metadata feature and thus the verbose output is not available.");
                Console.WriteLine("Hint: Use the replicate option to promote this FileStorage to one that does support this feature.");
                Console.WriteLine("Press a key to continue outputting quick dir");
                Console.ReadKey();
                verbose = false;
            }
            else
            {
                Console.WriteLine(sourceFileStorageHandler.DataFileHeaderStruct.fileStorageFeatures);
            }

            Int64 totalSize = 0;

            try
            {
                ProgressNotifier progressNotifier = new ProgressNotifier("Dir");
                var         count           = 0;
                DateTime    startDateTime   = DateTime.Now;
                List <Guid> dataIdentifiers = FileStorageFacade.GetAllDataIdentifiersBasedUponFileStorageIndexFile(fileStorageName, new FileStorageHandler.ExposeProgressDelegate(progressNotifier.ShowProgress));

                if (verbose)
                {
                    Console.WriteLine("Data identifier                      | Text identifier  | Creation date     | Size ");
                    Console.WriteLine("-------------------------------------+------------------+-------------------+-----------------");
                }
                else
                {
                    Console.WriteLine("Data identifier                      | Text identifier   ");
                    Console.WriteLine("-------------------------------------+-------------------");
                }


                foreach (Guid currentDataIdentifier in dataIdentifiers)
                {
                    string interpretedString = currentDataIdentifier.ToNFileStorageOrigFileName();

                    if (verbose)
                    {
                        var   metaDataContainer = FileStorageFacade.GetMetaData(fileStorageName, currentDataIdentifier);
                        Int64 binarySizeInBytes = metaDataContainer.BinarySizeInBytes;
                        totalSize += binarySizeInBytes;
                        DateTime creationDate = metaDataContainer.CreationDateUTC;
                        Console.WriteLine(string.Format("{0} | {1} | {2} | {3:0,0,0,0}", currentDataIdentifier, interpretedString, creationDate.ToString("yyyyMMdd hh:mm:ss"), binarySizeInBytes));
                    }
                    else
                    {
                        Console.WriteLine(string.Format("{0} | {1} | ", currentDataIdentifier, interpretedString));
                    }

                    count++;
                }

                if (verbose)
                {
                    Console.WriteLine(string.Format("{0} files found ({1:0,0,0,0} bytes)", count, (int)totalSize));
                }
                else
                {
                    Console.WriteLine(string.Format("{0} files found", count));
                }

                TimeSpan timeSpan = DateTime.Now - startDateTime;
                Console.WriteLine(string.Format("This operation took {0} msecs", (Int64)timeSpan.TotalMilliseconds));
            }
            catch (Exception e)
            {
                Console.WriteLine(string.Format("An error occured; {0}", e.Message));
                Console.WriteLine(string.Format("An error occured; {0}", e.StackTrace));
            }
        }