<PackageReference Include="Relativity.Server.Import.SDK" Version="2.9.2" />

FilePathProvider

public abstract class FilePathProvider : IFilePathProvider
using kCura.WinEDDS; using Relativity.DataExchange.Io; using Relativity.DataExchange.Logger; using Relativity.Logging; using System.IO; namespace Relativity.DataExchange.Export.VolumeManagerV2.Directories { public abstract class FilePathProvider : IFilePathProvider { private readonly ExportFile _exportSettings; private readonly IDirectory _directoryHelper; private readonly ILog _logger; protected ILabelManagerForArtifact LabelManagerForArtifact { get; } protected FilePathProvider(ILabelManagerForArtifact labelManagerForArtifact, ExportFile exportSettings, IDirectory directoryHelper, ILog logger) { LabelManagerForArtifact = labelManagerForArtifact; _exportSettings = exportSettings; _directoryHelper = directoryHelper; _logger = logger; } public string GetPathForFile(string fileName, int objectExportInfoArtifactId) { string volumeLabel = LabelManagerForArtifact.GetVolumeLabel(objectExportInfoArtifactId); string subdirectoryLabel = GetSubdirectoryLabel(objectExportInfoArtifactId); string text = Path.Combine(_exportSettings.FolderPath, volumeLabel, subdirectoryLabel); if (!_directoryHelper.Exists(text)) { _logger.LogInformation("Creating directory {directory}.", new object[1] { text.Secure() }); _directoryHelper.CreateDirectory(text); } return Path.Combine(text, fileName); } protected abstract string GetSubdirectoryLabel(int objectExportInfoArtifactId); } }