/// <summary>
 /// Gets a directory representing temp files.
 /// </summary>
 /// <param name="fileSystem">The file system.</param>
 /// <param name="path">
 /// The path of the temp directory. If this is an absolute path,
 /// then a directory representing the specified path is returned.
 /// If it's a relative path, then it will be combined with the
 /// current temp path. If this is <c>null</c> then the base
 /// temp directory is returned.
 /// </param>
 /// <returns>A temp directory.</returns>
 public static IDirectory GetTempDirectory(this IReadOnlyFileSystem fileSystem, NormalizedPath path)
 {
     _ = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
     return(fileSystem.GetDirectory(fileSystem.GetTempPath(path)));
 }
 /// <summary>
 /// Gets the temp path.
 /// </summary>
 /// <param name="fileSystem">The file system.</param>
 /// <returns>The temp path.</returns>
 public static NormalizedPath GetTempPath(this IReadOnlyFileSystem fileSystem) =>
 fileSystem.GetTempPath(NormalizedPath.Null);