Ejemplo n.º 1
0
        /// <summary>
        /// Permanently deletes a file or directory.
        /// </summary>
        /// <param name="fsi">File or directory to delete.</param>
        public static void Delete(IFileSystemInfo fsi)
        {
            fsi.Attributes = FileAttributes.Normal;
            var di = fsi as IDirectoryInfo;

            if (di != null)
            {
                foreach (var dirInfo in di.GetFileSystemInfos())
                {
                    Delete(dirInfo);
                }
            }
            fsi.Delete();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Deletes a file or directory including read only directories or files.
        /// </summary>
        /// <param name="fileOrDirectory">File or directory to delete.</param>
        /// <exception cref="ArgumentNullException">When file or direcory is null.</exception>
        public static void DeleteFileSystemInfo(this IFileSystemInfo fileOrDirectory)
        {
            if (fileOrDirectory == null)
            {
                throw new ArgumentNullException("fileOrDirectory");
            }

            fileOrDirectory.Attributes = FileAttributes.Normal;
            var di = fileOrDirectory as IDirectoryInfo;

            if (di != null)
            {
                foreach (var dirInfo in di.GetFileSystemInfos())
                {
                    DeleteFileSystemInfo(dirInfo);
                }
            }
            fileOrDirectory.Delete();
        }