Beispiel #1
0
        public ExifData Read(string filePath)
        {
            if (_cacheDates.TryGetValue(filePath, out var result))
            {
                return(result);
            }

            var exifData       = GetExifData(filePath);
            var resultDateTime = GetCreationDate(filePath, exifData);

            var cameraModel = exifData?.CameraModel ?? "No Model";

            result = new ExifData(resultDateTime, cameraModel, exifData != null);
            _cacheDates[filePath] = result;

            return(result);
        }
Beispiel #2
0
        private DateTime GetCreationDate(string filePath, ExifData data)
        {
            var resultDateTime = data?.CreationDateTime ?? DateTime.MinValue;

            if (resultDateTime != DateTime.MinValue)
            {
                return(resultDateTime);
            }

            if (DateParseFromFileNameService.TryGetFrom(filePath, out var fileNameDate))
            {
                return(fileNameDate);
            }

            var creation = File.GetCreationTime(filePath);
            var modified = File.GetLastWriteTime(filePath);

            return(creation < modified ? creation : modified);
        }