AK.F1.Timing.Service.Configuration.Impl.Validation.DirectoryPathValidator.Validate C# (CSharp) Method

Validate() public method

public Validate ( object value ) : void
value object
return void
        public override void Validate(object value)
        {
            var directory = (string)value;
            Guard.NotNullOrEmpty(directory, "value");
            var directoryExisted = Directory.Exists(directory);
            if(!directoryExisted)
            {
                Directory.CreateDirectory(directory);
            }
            try
            {
                var tempPath = Path.Combine(directory, Path.GetRandomFileName());
                File.Create(tempPath).Dispose();
                File.Delete(tempPath);
            }
            finally
            {
                if(!directoryExisted)
                {
                    try
                    {
                        // Do not recurse just in case it has been populated.
                        Directory.Delete(directory, recursive: false);
                    }
                    catch(IOException) { }
                }
            }
        }
DirectoryPathValidator