Значительная сумма подпапок и длинных подпапок. Как я могу удалить всех их?

Самой очевидной вещью сказать является "использование Ваш контракт на поддержку VMware", но конечно ESXI часто используется полностью свободно, не покупая поддержку, таким образом, я предположу, что Вы не имеете.

Таким образом, следующая вещь сделать состоит в том, чтобы понять, что почти наверняка системный дамп был создан, необходимо проверить, что каждый был, и изучите, как считать его. Теперь я мог вдаваться в подробности, как сделать это, но кто-то уже создал хорошее РУКОВОДСТВО по тому, как сделать это.

Удачи.

2
задан 30 August 2014 в 10:56
7 ответов

Это - программа dot_deltree.cs в C#, который удаляет деревья каталогов любой глубины. Это работает первыми движущимися слишком глубокими каталогами к случайному имени в самом мелком каталоге.

using System;
using System.IO;

public class dot_deltree
{
    public static void Main(string[] args) {
        if ( ! (args.Length == 1) ) {
            Console.Error.WriteLine("Usage: dot_deltree [path]");
            Environment.Exit(1);
        }

        string dirname = args[0];

        if ( ! Directory.Exists(dirname) ) {
            Console.Error.WriteLine("{0} does not exist or is not a directory!", dirname);
            Environment.Exit(1);
        }

        confirm_deleting(dirname);

        while ( true ) {
            string too_deep_dir = deltree( dirname );
            if ( too_deep_dir.Equals("") ) {
                break;
            }
            string randomname = Path.GetRandomFileName();
            Console.Error.WriteLine(
                "Moving too deep directory {0}:{2} to random name {1}", 
                too_deep_dir, randomname, too_deep_dir.Length
            );
            Directory.Move( too_deep_dir, Path.Combine(dirname,randomname) );
        }
    }

    public static void confirm_deleting(string path) {
        Console.Write("Do you really want do delete directory {0} recursively (type YES)? ", path);
        string result = Console.ReadLine();
        if ( ! result.Equals("YES") ) {
            Environment.Exit(1);
        }
    }

    public static string deltree(string uncpath) {
        if ( uncpath.Length > 200 ) {
            return uncpath;
        }
        string[] subdirectories = Directory.GetDirectories(uncpath);
        foreach (string subdirectory in subdirectories) {
            string result = deltree(subdirectory);
            if ( ! result.Equals("") ) {
                // Return up too deep directory
                return result;
            }
        }
        // Console.Error.WriteLine("Deleting {0}", uncpath);
        Directory.Delete(uncpath,true);
        return "";
    }
}

Скомпилированное использующее Моно использование компилятора C# gmcs dot_deltree.cs для.NET 2.0 здесь (4 КБ).

2
ответ дан 3 December 2019 в 10:20

попробуйте за/f, "удаляет известь =" %a в ('dir/, реклама/b') делают комнату/s/q "%a" - это будет рекурсивно, и без выяснения удаляют все подкаталоги текущего каталога, перечисленного в dir / реклама/b вывод

1
ответ дан 3 December 2019 в 10:20

Если бы эта доля является единственной вещью на разделе затем, было бы самым легким просто переформатировать его.

Если существует что-то стоящее экономить на разделе, то просто копируют его где-нибудь, переформатировали и копируют его назад.

1
ответ дан 3 December 2019 в 10:20

Попытайтесь использовать "deltree". Я иду только Linux прямо сейчас, но я рекомендую делать "deltree/?" сначала!

0
ответ дан 3 December 2019 в 10:20

Вы попробовали WinDirStat, я не уверен в этих 255 пределах, поскольку он дает команды окон, чтобы сделать удаление, но он мог бы помочь Вам разобраться в легче путанице.

Очень полезный инструмент иначе

0
ответ дан 3 December 2019 в 10:20

Что происходит, если Вы используете опцию перемещения / robocopy? Это удалит файлы из источника после копирования.

0
ответ дан 3 December 2019 в 10:20

Что, если Вы использовали ROBOCOPY с /MIR флаг для зеркального отражения пустой папки выше нежелательные файлы? Если достаточно умно скопировать файлы с длинными именами, должно быть достаточно умно удалить их.

 MKDIR empty
 ROBOCOPY empty <dest> /MIR

Althoguh возможно, что это не доберется немного дальше, чем предложение Chris.

0
ответ дан 3 December 2019 в 10:20

Теги

Похожие вопросы