Esempio n. 1
0
        public void Delete(DeleteMode deleteMode = DeleteMode.Normal)
        {
            ThrowIfNotInitialized();
            ThrowIfRelative();

            if (IsRoot)
            {
                throw new NotSupportedException("Delete is not supported on a root level directory because it would be dangerous:" + ToString());
            }

            var isFile = FileExists();
            var isDir  = DirectoryExists();

            if (!isFile && !isDir)
            {
                throw new InvalidOperationException("Trying to delete a path that does not exist: " + ToString());
            }

            try
            {
                if (isFile)
                {
                    FSWrapper.FileDelete(this);
                }
                else
                {
                    FSWrapper.DirectoryDelete(this, true);
                }
            }
            catch (IOException)
            {
                if (deleteMode == DeleteMode.Normal)
                {
                    throw;
                }
            }
        }