private static PortableFileObject AddFileObject ( string filePath, PortableDirectorySource directorySource, ReaderWriterLockSlim objectsLock, Func <PortableDirectorySource, string, PortableFileObject> createObject ) { _objectLoadingTask.ThrowIfUnitialised(nameof(_fileObjectDescriber), nameof(AddFileObject), nameof(RegisterPlatformSpecific)); string fileName = Path.GetFileName(filePath); DateTime fileTime = _fileObjectDescriber.GetFileCreationTime(filePath); PortableFileObject fileObject = createObject(directorySource, fileName); directorySource.AddObject(fileObject); objectsLock?.EnterWriteLock(); try { _cachedObjects.Add(fileObject); } finally { objectsLock?.ExitWriteLock(); } return(fileObject); }
public PortableFileObject ( PortableDirectorySource directorySource, string fileName, PortableFileDescriber fileDescriber ) : base ( directorySource ) { DirectorySource = directorySource; FileExtension = Path.GetExtension(fileName).TrimStart('.'); FileName = Path.GetFileNameWithoutExtension(fileName); FilePath = Path.Combine(directorySource.DirectoryPath, fileName); FileTime = fileDescriber.GetFileCreationTime(FilePath); }