コード例 #1
0
        public static void LoadFingerPrintsDataBase(string databaseCategory)
        {
            // Search for all files with given extensios in given directory.
            string databaseDirectoryPath = Path.Combine(DATABASE_DIRECTORY_NAME, databaseCategory);

            try
            {
                string[] files = Directory.GetFiles(databaseDirectoryPath, $"*{FINGEPRINT_EXTENSION}");
                foreach (string fingerPrintFile in files)
                {
                    List <HashedFingerprint> hashedFingerprints =
                        SerializationMachine.ProtoDeserialize <List <HashedFingerprint> >(
                            FilePath.CreateFilePath(fingerPrintFile));

                    string trackReferenceFile = fingerPrintFile.Replace(FINGEPRINT_EXTENSION, TRACK_REFERENCE_EXTENSION);
                    if (File.Exists(trackReferenceFile))
                    {
                        IModelReference trackReference =
                            SerializationMachine.ProtoDeserialize <IModelReference>(
                                FilePath.CreateFilePath(trackReferenceFile));

                        if (hashedFingerprints != null && trackReference != null)
                        {
                            mModelService.InsertHashDataForTrack(hashedFingerprints, trackReference);
                            Console.WriteLine($"Loaded fingerprint of track reference ID: {trackReference.Id}");
                        }
                        else
                        {
                            Console.WriteLine($"Cannot load fingerprint {fingerPrintFile}");
                        }
                    }
                    else
                    {
                        Console.WriteLine($"Error! the track reference file of {fingerPrintFile} is missing");
                    }
                }
            }
            catch (ArgumentException e)
            {
                Console.WriteLine($"Argument Exception occures: {e.Message}");
            }
            catch (DirectoryNotFoundException)
            {
                Console.WriteLine($"No such directory: {databaseDirectoryPath}");
            }
        }
コード例 #2
0
        /// <summary>
        /// Search for all files with given extensios in given directory.
        /// </summary>
        /// <param name="waveFile"></param>
        public void LoadFingerPrintsDatabase()
        {
            try
            {
                string[] files = Directory.GetFiles(mDatabaseDirectoryPath, $"*{FINGERPRINT_EXTENSION}");
                foreach (string fingerPrintFile in files)
                {
                    List <HashedFingerprint> hashedFingerprints =
                        SerializationMachine.ProtoDeserialize <List <HashedFingerprint> >(
                            FilePath.CreateFilePath(fingerPrintFile));

                    string trackReferenceFile = fingerPrintFile.Replace(FINGERPRINT_EXTENSION, TRACK_REFERENCE_EXTENSION);
                    if (File.Exists(trackReferenceFile))
                    {
                        ModelReference <int> trackReference = SerializationMachine.ProtoDeserialize <ModelReference <int> >(
                            FilePath.CreateFilePath(trackReferenceFile));

                        if (hashedFingerprints != null && trackReference != null)
                        {
                            mModelService.InsertHashDataForTrack(hashedFingerprints, trackReference);
                            mLogger.WriteLine($"Loaded fingerprint of track reference ID: {trackReference.Id}");
                        }
                        else
                        {
                            mLogger.WriteLine($"Cannot load fingerprint {fingerPrintFile}");
                        }
                    }
                    else
                    {
                        mLogger.WriteError($"Error! the track reference file of {fingerPrintFile} is missing");
                    }
                }
            }
            catch (DirectoryNotFoundException)
            {
                mLogger.WriteError($"No such directory: {mDatabaseDirectoryPath}");
            }
            catch (Exception ex) when(ex is ArgumentException || ex is NullReferenceException)
            {
                mLogger.WriteError($"Exception occures: {ex.Message}", ex);
            }
        }