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(); } }
/// <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; }