Пример #1
0
        /// <summary>
        /// Creates a map of local volumes.
        /// </summary>
        public static VolumeMap TryCreateMapOfAllLocalVolumes(LoggingContext loggingContext, IReadOnlyList <string> junctionRoots = null)
        {
            var volumeMap = VolumeMap.CreateMapOfAllLocalVolumes(loggingContext, junctionRoots);

            // We want to skip volumes that are not local to VM.
            volumeMap.SkipTrackingJournalIncapableVolume = HasRelocatedTempInVm;

            return(volumeMap);
        }
        /// <summary>
        /// Creates an instance of <see cref="IFileContentTableAccessor"/> based on the current OS.
        /// </summary>
        /// <param name="accessor">Output file content table accessor.</param>
        /// <param name="error">Error message for failed creation.</param>
        /// <returns>True if successful; otherwise false.</returns>
        public static bool TryCreate(out IFileContentTableAccessor accessor, out string error)
        {
            accessor = null;
            error    = null;

            if (OperatingSystemHelper.IsUnixOS)
            {
                accessor = new FileContentTableAccessorUnix();
                return(true);
            }

            VolumeMap volumeMap = VolumeMap.CreateMapOfAllLocalVolumes(new LoggingContext(nameof(IFileContentTableAccessor)));

            if (volumeMap == null)
            {
                error = "Failed to create volume map";
                return(false);
            }

            accessor = new FileContentTableAccessorWin(volumeMap);
            return(true);
        }