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

FileSharePathManager

Represents a file share path manager class object.
using System; using System.IO; namespace Relativity.DataExchange.Io { internal class FileSharePathManager { private readonly int maxVolumeSize; private string currentSubDirectory; private string lastSubdirectory; private int currentFileNumber; public string CurrentTargetFolderName => currentSubDirectory; public int MaxVolumeSize => maxVolumeSize; public FileSharePathManager(int maximumVolumeSize) { currentSubDirectory = GetNewSubdirectory(); lastSubdirectory = string.Copy(currentSubDirectory); currentFileNumber = 0; maxVolumeSize = maximumVolumeSize; } public void Rollback() { if (currentFileNumber == 1) { currentFileNumber = maxVolumeSize; currentSubDirectory = string.Copy(lastSubdirectory); } else currentFileNumber--; } public string GetNextTargetPath(string targetFolderName) { currentFileNumber++; if (currentFileNumber > maxVolumeSize) { currentFileNumber = 1; lastSubdirectory = string.Copy(currentSubDirectory); currentSubDirectory = GetNewSubdirectory(); } return Path.Combine(targetFolderName, currentSubDirectory) + "\\"; } public string GetNewSubdirectory(string path) { return Path.Combine(path, GetNewSubdirectory()) + "\\"; } private static string GetNewSubdirectory() { return "RV_" + Guid.NewGuid().ToString(); } } }