public static void Unblock(this DirectoryInfo directory, bool isRecursive)
        {
            if (directory == null)
            {
                throw new ArgumentNullException("file");
            }

            if (!directory.Exists)
            {
                throw new DirectoryNotFoundException(string.Format(CultureInfo.InvariantCulture,
                    "The specified directory '{0}' cannot be found.", directory.FullName));
            }

            if (directory.AlternateDataStreamExists(ZoneIdentifierStreamName))
            {
                directory.DeleteAlternateDataStream(ZoneIdentifierStreamName);
            }

            if (!isRecursive)
            {
                return;
            }

            foreach (var item in directory.GetDirectories())
            {
                item.Unblock(true);
            }

            foreach (var item in directory.GetFiles())
            {
                item.Unblock();
            }
        }
Exemple #2
0
        /// <summary>
        /// Unblocks the file.
        /// </summary>
        /// <param name="file">Extension instance.</param>
        static public void Unblock(this FileInfo file)
        {
            if (file.Exists == false)
                throw new FileNotFoundException(String.Format(CultureInfo.InvariantCulture, "The specified file '{0}' could not be found.", file.FullName));

            if (file.AlternateDataStreamExists(FileInfoExtensions.ZoneIdentifierStreamName))
                file.DeleteAlternateDataStream(FileInfoExtensions.ZoneIdentifierStreamName);
        }
        /// <summary>
        /// Unblocks the directory.
        /// </summary>
        /// <param name="directory">Extension instance.</param>
        /// <param name="recursive">True to recursively unblock all files and folders within the directory.</param>
        static public void Unblock(this DirectoryInfo directory, bool recursive)
        {
            if (directory.Exists == false)
                throw new DirectoryNotFoundException(String.Format(CultureInfo.InvariantCulture, "The specified directory '{0}' could not be found.", directory.FullName));

            if (directory.AlternateDataStreamExists(DirectoryInfoExtensions.ZoneIdentifierStreamName))
                directory.DeleteAlternateDataStream(DirectoryInfoExtensions.ZoneIdentifierStreamName);

            if (recursive)
            {
                foreach(DirectoryInfo subDirectory in directory.GetDirectories())
                    subDirectory.Unblock(true);

                foreach (FileInfo file in directory.GetFiles())
                    file.Unblock();
            }
        }
        public static bool Unblock(this FileInfo file)
        {
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }

            if (!file.Exists)
            {
                throw new FileNotFoundException("Unable to find the specified file.", file.FullName);
            }

            if (!file.Exists || !file.AlternateDataStreamExists(ZoneIdentifierStreamName)) return false;
            
            file.DeleteAlternateDataStream(ZoneIdentifierStreamName);

            return true;
        }