public void CreateDirectoryAndParents(DirectoryInfo directory) { DirectoryInfo parentDirectory; if (_fileSystemOperations.TryGetParentDirectory(directory, out parentDirectory)) { if (!_fileSystemOperations.Exists(parentDirectory)) { CreateDirectoryAndParents(parentDirectory); } _fileSystemOperations.Create(directory); SetUnixOwnerIfNeeded(directory.FullName); } }