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

TempDirectory2

public sealed class TempDirectory2 : IDisposable
Represents a disposable temporary directory class object. This class cannot be inherited.
using System; using System.Diagnostics; using System.IO; namespace Relativity.DataExchange { public sealed class TempDirectory2 : IDisposable { private bool disposed; public bool ClearReadOnlyAttributes { get; set; } public bool DeleteDirectory { get; set; } public string Directory { get; set; } public TempDirectory2() { ClearReadOnlyAttributes = false; DeleteDirectory = true; Directory = Path.Combine(Path.GetTempPath(), "RelativityTmpDir_" + DateTime.Now.Ticks.ToString() + "_" + Guid.NewGuid().ToString()); } public void Create() { System.IO.Directory.CreateDirectory(Directory); } public void Dispose() { Dispose(true); } public bool Exists() { return System.IO.Directory.Exists(Directory); } private void Dispose(bool disposing) { if (!disposed) { if (disposing) { if (DeleteDirectory && !string.IsNullOrEmpty(Directory) && System.IO.Directory.Exists(Directory)) try { if (ClearReadOnlyAttributes) { string[] files = System.IO.Directory.GetFiles(Directory, "*", SearchOption.AllDirectories); foreach (string path in files) { FileAttributes attributes = File.GetAttributes(path); File.SetAttributes(path, attributes & ~FileAttributes.ReadOnly); } } System.IO.Directory.Delete(Directory, true); } catch (IOException ex) { Trace.WriteLine("Failed to tear down the '" + Directory + "' temp directory due to an I/O issue. Exception: " + ex?.ToString()); } catch (UnauthorizedAccessException) { } Directory = null; } disposed = true; } } } }