Проблема с размером профилей

Хромиум... профиль-папки... расширения... это все в бетке и не рабочее... пользуйтесь рабочим функционалом 3-х летней давности, движком CEF :bk:
 
Вот мое решение, которое позволило мне сократить размер профиль папок с 600mb+ до 700kb+
Почти в 900 раз.

Первое, это удаление папки '...\Default\Service Worker\CacheStorage'
Удаление папки '...\Default\Service Worker\CacheStorage' приведет к очистке кэшированных данных веб-сайтов, включая возможно кэшированные данные сервис-воркеров.

C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
    string bad_dir = $@"{profilePatch}\Default\Service Worker\CacheStorage";
    string[] files = Directory.GetFiles(bad_dir);
    string[] subDirectories = Directory.GetDirectories(bad_dir);
   
    foreach(string file in files)
    {
        File.Delete(file);
    }
   
    foreach(string directory in subDirectories)
    {
        Directory.Delete(directory, true);
    }
}

Второе, запуск chrome с флагами:
--disk-cache-size=52428800 --media-cache-size=52428800

Это уменьшает размер максимального кеша.


PS. Все куки, и LocalStorage остаются на месте, авторизации не слетают.
 
Как раз рассуждал про переход на профиль-папки, но что-то теперь задумался. Это же никакого жесткого диска не хватит, хранить столько добра кешированного.
 
Вот мое решение, которое позволило мне сократить размер профиль папок с 600mb+ до 700kb+
Почти в 900 раз.

Первое, это удаление папки '...\Default\Service Worker\CacheStorage'
Удаление папки '...\Default\Service Worker\CacheStorage' приведет к очистке кэшированных данных веб-сайтов, включая возможно кэшированные данные сервис-воркеров.

C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
    string bad_dir = $@"{profilePatch}\Default\Service Worker\CacheStorage";
    string[] files = Directory.GetFiles(bad_dir);
    string[] subDirectories = Directory.GetDirectories(bad_dir);
  
    foreach(string file in files)
    {
        File.Delete(file);
    }
  
    foreach(string directory in subDirectories)
    {
        Directory.Delete(directory, true);
    }
}

Второе, запуск chrome с флагами:
--disk-cache-size=52428800 --media-cache-size=52428800

Это уменьшает размер максимального кеша.


PS. Все куки, и LocalStorage остаются на месте, авторизации не слетают.
Можно чуть улучшить и попробовать использовать переменную окружения:


C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
    var browserProfileFolder = project.BrowserProfileFolder;
    if (string.IsNullOrEmpty(browserProfileFolder)) return "";
    string bad_dir = Path.Combine(browserProfileFolder, $@"\Default\Service Worker\CacheStorage");
    string[] files = Directory.GetFiles(bad_dir);
    string[] subDirectories = Directory.GetDirectories(bad_dir);
   
    foreach(string file in files)
    {
        File.Delete(file);
    }
   
    foreach(string directory in subDirectories)
    {
        Directory.Delete(directory, true);
    }
}
 
Можно чуть улучшить и попробовать использовать переменную окружения:


C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
    var browserProfileFolder = project.BrowserProfileFolder;
    if (string.IsNullOrEmpty(browserProfileFolder)) return "";
    string bad_dir = Path.Combine(browserProfileFolder, $@"\Default\Service Worker\CacheStorage");
    string[] files = Directory.GetFiles(bad_dir);
    string[] subDirectories = Directory.GetDirectories(bad_dir);
  
    foreach(string file in files)
    {
        File.Delete(file);
    }
  
    foreach(string directory in subDirectories)
    {
        Directory.Delete(directory, true);
    }
}

а можно чуть подробнее - что куда добавить, как использовать? к слову тянет на статью в конкурс - "кейс, как сэкономил на покупке железа")
 
а можно чуть подробнее - что куда добавить, как использовать? к слову тянет на статью в конкурс - "кейс, как сэкономил на покупке железа")

Так и так же все понятно.
Попробую объяснить проще.

В своем шаблоне перед запуском инстанса вы запускаете мой код, предварительно присвоив переменной 'profilePatch' путь до вашего профиля который вы будете запускать
Это выглядит так

C#:
Развернуть Свернуть Копировать
string profilePatch =  $@"путь до вашей папки с профилем"; // например D:/Profiles/Profile_1

bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
    string bad_dir = $@"{profilePatch}\Default\Service Worker\CacheStorage";
    string[] files = Directory.GetFiles(bad_dir);
    string[] subDirectories = Directory.GetDirectories(bad_dir);

    foreach(string file in files)
    {
        File.Delete(file);
    }

    foreach(string directory in subDirectories)
    {
        Directory.Delete(directory, true);
    }
}

Т.е. логика шаблона такая
C#:
Развернуть Свернуть Копировать
   [ваши блоки  в шаблоне]
   [мой код уменьшения размера папки профиля]
   [запуск инстанса с профиль папкой]
   [ваши блоки  в шаблоне]
 
  • Спасибо
Реакции: Konrod_m
Можно чуть улучшить и попробовать использовать переменную окружения:


C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
    var browserProfileFolder = project.BrowserProfileFolder;
    if (string.IsNullOrEmpty(browserProfileFolder)) return "";
    string bad_dir = Path.Combine(browserProfileFolder, $@"\Default\Service Worker\CacheStorage");
    string[] files = Directory.GetFiles(bad_dir);
    string[] subDirectories = Directory.GetDirectories(bad_dir);
 
    foreach(string file in files)
    {
        File.Delete(file);
    }
 
    foreach(string directory in subDirectories)
    {
        Directory.Delete(directory, true);
    }
}

Я бы не советовал так делать.
Ты предлагаешь чистить профиль когда он загружен уже инстансом, т.е. работать по живому профилю, это может вызвать проблемы с профилем при следующей загрузке.
Лучше как у меня, когда профиль не загружен, ты его чистишь а потом загружаешь.
 
В своем шаблоне перед запуском инстанса вы запускаете мой код, предварительно присвоив переменной 'profilePatch' путь до вашего профиля который вы будете запускать
А не больше смысла в конце перед завершением работы шаблона чистить (ну или и перед запуском, и в конце)? Чтобы не хранить все набежавшее за сессию на диске? Смысл-то именно в хранении, в общем, что в процессе набежит, оно только в процессе и будет место занимать.
 
А не больше смысла в конце перед завершением работы шаблона чистить (ну или и перед запуском, и в конце)? Чтобы не хранить все набежавшее за сессию на диске? Смысл-то именно в хранении, в общем, что в процессе набежит, оно только в процессе и будет место занимать.

Я писал об этом здесь

Я бы не советовал так делать.
Ты предлагаешь чистить профиль когда он загружен уже инстансом, т.е. работать по живому профилю, это может вызвать проблемы с профилем при следующей загрузке.
Лучше как у меня, когда профиль не загружен, ты его чистишь а потом загружаешь.
 
Я писал об этом здесь
Ну, я имел ввиду все-таки не в процессе, а в конце работы, иначе немного теряется смысл, ибо придется все равно хранить все набежавшее за сессию.
Необязательно же чистить "по живому" )) Закрыть инстанс, "отцепить" профиль, после этого уже очистить.
 
  • Спасибо
Реакции: Konrod_m
Пока ещё в процессе разработки.
Есть ли новости по данному вопросу? Критическому багу 3.5 года, как же так, что нет официального решения вопроса? Как вообще работать с профиль-папками, если размер профилей будет расти по экспоненте. :bn:
 
Есть ли новости по данному вопросу? Критическому багу 3.5 года, как же так, что нет официального решения вопроса? Как вообще работать с профиль-папками, если размер профилей будет расти по экспоненте. :bn:
Поддержу вопрос
 
Есть ли новости по данному вопросу? Критическому багу 3.5 года, как же так, что нет официального решения вопроса? Как вообще работать с профиль-папками, если размер профилей будет расти по экспоненте. :bn:
Поддержу вопрос
Есть встроенный механизм ограничения размера профилей, можно прописать в
C:\Users\<Username>\AppData\Roaming\ZennoLab\ZennoPoster\7\Settings\globalsettings.settings.json (там должно быть такое, нужно только добавить StorageQuotaSettings:PoolSizeBytes/n, где n - размер в байтах):

C#:
Развернуть Свернуть Копировать
{
    "clnMainGroup": "ZennoPoster",
    "clnSubGroup": "Chrome",
    "clnName": "EnableFeatures",
    "clnType": "System.String",
    "clnValue": "RunVideoCaptureServiceInBrowserProcess,StorageQuotaSettings:PoolSizeBytes/524288000"
  },


Суть в - StorageQuotaSettings:PoolSizeBytes/524288000 - это будет приблизительным ограничением пула/профиля, в байтах, что соответствует 500 Мб. Соответственно, можно настроить по желанию.

Также, чуть выше приводили еще варианты очистки/ограничения профилей папок:




В совокупности с аргументами: --disk-cache-size=524288000 --media-cache-size=524288000
 
Последнее редактирование:
  • Спасибо
Реакции: material
Вот мое решение, которое позволило мне сократить размер профиль папок с 600mb+ до 700kb+
Почти в 900 раз.

Первое, это удаление папки '...\Default\Service Worker\CacheStorage'
Удаление папки '...\Default\Service Worker\CacheStorage' приведет к очистке кэшированных данных веб-сайтов, включая возможно кэшированные данные сервис-воркеров.

C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
    string bad_dir = $@"{profilePatch}\Default\Service Worker\CacheStorage";
    string[] files = Directory.GetFiles(bad_dir);
    string[] subDirectories = Directory.GetDirectories(bad_dir);
 
    foreach(string file in files)
    {
        File.Delete(file);
    }
 
    foreach(string directory in subDirectories)
    {
        Directory.Delete(directory, true);
    }
}

Второе, запуск chrome с флагами:
--disk-cache-size=52428800 --media-cache-size=52428800

Это уменьшает размер максимального кеша.


PS. Все куки, и LocalStorage остаются на месте, авторизации не слетают.
Вот мое решение, которое позволило мне сократить размер профиль папок с 600mb+ до 700kb+
Почти в 900 раз.

Первое, это удаление папки '...\Default\Service Worker\CacheStorage'
Удаление папки '...\Default\Service Worker\CacheStorage' приведет к очистке кэшированных данных веб-сайтов, включая возможно кэшированные данные сервис-воркеров.

C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;
if(REDUCE_PROFILE_SIZE) {
    string bad_dir = $@"{profilePatch}\Default\Service Worker\CacheStorage";
    string[] files = Directory.GetFiles(bad_dir);
    string[] subDirectories = Directory.GetDirectories(bad_dir);
  
    foreach(string file in files)
    {
        File.Delete(file);
    }
  
    foreach(string directory in subDirectories)
    {
        Directory.Delete(directory, true);
    }
}

Второе, запуск chrome с флагами:
--disk-cache-size=52428800 --media-cache-size=52428800

Это уменьшает размер максимального кеша.


PS. Все куки, и LocalStorage остаются на месте, авторизации не слетают.
Добрый вечер, как ведут себя профили после чистки кэша? Свою "нагуляность" сохраняют?
 
Может кому пригодится. профили "projectData/Profile" должны быть. кому логика не понятна, спросите. опишу. сейчас лень.



Лишнее удалите под себя




C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;

if (REDUCE_PROFILE_SIZE)
{
    // Ожидание завершения работы браузера (если нужно)
    instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.WithoutBrowser, true); // Выключить браузер
    System.Threading.Thread.Sleep(6000); // Задержка 6 секунд

    // Получаем путь к профилю
    string profilePath = Path.Combine(project.Directory, "Profile", project.Profile.Login);

    // Список папок для очистки с пояснениями
    string[] foldersToClean = new string[]
    {
        Path.Combine(profilePath, "Default", "AutofillStrikeDatabase"), // База данных для автозаполнения форм
        Path.Combine(profilePath, "Default", "blob_storage"), // Хранилище бинарных объектов
        Path.Combine(profilePath, "Default", "Cache"), // Кэш браузера (можно безопасно очистить)
        Path.Combine(profilePath, "Default", "Code Cache"), // Кэш для скриптов и кода
        Path.Combine(profilePath, "Default", "Download Service"), // Временные файлы для загрузок
        Path.Combine(profilePath, "Default", "Extension Rules"), // Правила расширений
        Path.Combine(profilePath, "Default", "Extension Scripts"), // Скрипты расширений
        Path.Combine(profilePath, "Default", "Extension State"), // Состояние расширений
        Path.Combine(profilePath, "Default", "Local Storage"), // Локальное хранилище данных, можно очистить
        Path.Combine(profilePath, "Default", "Network"), // Временные данные сети
        Path.Combine(profilePath, "Default", "optimization_guide_hint_cache_store"), // Кэш подсказок для оптимизации
        Path.Combine(profilePath, "Default", "parcel_tracking_db"), // База данных для отслеживания посылок
        Path.Combine(profilePath, "Default", "PersistentOriginTrials"), // Данные о персистентных испытаниях
        Path.Combine(profilePath, "Default", "Safe Browsing Network"), // Кэш безопасного серфинга
        Path.Combine(profilePath, "Default", "Segmentation Platform"), // Данные платформы сегментации
        Path.Combine(profilePath, "Default", "Session Storage"), // Хранилище сессий
        Path.Combine(profilePath, "Default", "Sessions"), // Сессии
        Path.Combine(profilePath, "Default", "Shared Dictionary"), // Общий словарь
        Path.Combine(profilePath, "Default", "shared_proto_db"), // Общая база данных протоколов
        Path.Combine(profilePath, "Default", "Sync Data") // Данные синхронизации (можно очистить, но повлияет на синхронизацию)
    };

    // Очистка кеша и временных данных
    foreach (var folder in foldersToClean)
    {
        if (Directory.Exists(folder))
        {
            string[] files = Directory.GetFiles(folder);
            string[] subDirectories = Directory.GetDirectories(folder);

            // Удаляем все файлы в папке
            foreach (string file in files)
            {
                try
                {
                    File.Delete(file);
                }
                catch (Exception ex)
                {
                    project.SendInfoToLog($"Ошибка при удалении файла {file}: {ex.Message}");
                }
            }

            // Удаляем все подкаталоги в папке
            foreach (string directory in subDirectories)
            {
                try
                {
                    Directory.Delete(directory, true); // true - для удаления с содержимым
                }
                catch (Exception ex)
                {
                    project.SendInfoToLog($"Ошибка при удалении каталога {directory}: {ex.Message}");
                }
            }
        }
        else
        {
            project.SendInfoToLog($"Папка не найдена: {folder}");
        }
    }
}
PS. Берет профиль папку по текущему логину. те профиль папка должна называтся как и логин.

C#:
Развернуть Свернуть Копировать
Project/Profile/{-Profile.Login-}
 
Последнее редактирование:
  • Спасибо
Реакции: material и p-sergei
Может кому пригодится. профили "projectData/Profile" должны быть. кому логика не понятна, спросите. опишу. сейчас лень.



Лишнее удалите под себя




C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;

if (REDUCE_PROFILE_SIZE)
{
    // Ожидание завершения работы браузера (если нужно)
    instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.WithoutBrowser, true); // Выключить браузер
    System.Threading.Thread.Sleep(6000); // Задержка 6 секунд

    // Получаем путь к профилю
    string profilePath = Path.Combine(project.Directory, "Profile", project.Profile.Login);

    // Список папок для очистки с пояснениями
    string[] foldersToClean = new string[]
    {
        Path.Combine(profilePath, "Default", "AutofillStrikeDatabase"), // База данных для автозаполнения форм
        Path.Combine(profilePath, "Default", "blob_storage"), // Хранилище бинарных объектов
        Path.Combine(profilePath, "Default", "Cache"), // Кэш браузера (можно безопасно очистить)
        Path.Combine(profilePath, "Default", "Code Cache"), // Кэш для скриптов и кода
        Path.Combine(profilePath, "Default", "Download Service"), // Временные файлы для загрузок
        Path.Combine(profilePath, "Default", "Extension Rules"), // Правила расширений
        Path.Combine(profilePath, "Default", "Extension Scripts"), // Скрипты расширений
        Path.Combine(profilePath, "Default", "Extension State"), // Состояние расширений
        Path.Combine(profilePath, "Default", "Local Storage"), // Локальное хранилище данных, можно очистить
        Path.Combine(profilePath, "Default", "Network"), // Временные данные сети
        Path.Combine(profilePath, "Default", "optimization_guide_hint_cache_store"), // Кэш подсказок для оптимизации
        Path.Combine(profilePath, "Default", "parcel_tracking_db"), // База данных для отслеживания посылок
        Path.Combine(profilePath, "Default", "PersistentOriginTrials"), // Данные о персистентных испытаниях
        Path.Combine(profilePath, "Default", "Safe Browsing Network"), // Кэш безопасного серфинга
        Path.Combine(profilePath, "Default", "Segmentation Platform"), // Данные платформы сегментации
        Path.Combine(profilePath, "Default", "Session Storage"), // Хранилище сессий
        Path.Combine(profilePath, "Default", "Sessions"), // Сессии
        Path.Combine(profilePath, "Default", "Shared Dictionary"), // Общий словарь
        Path.Combine(profilePath, "Default", "shared_proto_db"), // Общая база данных протоколов
        Path.Combine(profilePath, "Default", "Sync Data") // Данные синхронизации (можно очистить, но повлияет на синхронизацию)
    };

    // Очистка кеша и временных данных
    foreach (var folder in foldersToClean)
    {
        if (Directory.Exists(folder))
        {
            string[] files = Directory.GetFiles(folder);
            string[] subDirectories = Directory.GetDirectories(folder);

            // Удаляем все файлы в папке
            foreach (string file in files)
            {
                try
                {
                    File.Delete(file);
                }
                catch (Exception ex)
                {
                    project.SendInfoToLog($"Ошибка при удалении файла {file}: {ex.Message}");
                }
            }

            // Удаляем все подкаталоги в папке
            foreach (string directory in subDirectories)
            {
                try
                {
                    Directory.Delete(directory, true); // true - для удаления с содержимым
                }
                catch (Exception ex)
                {
                    project.SendInfoToLog($"Ошибка при удалении каталога {directory}: {ex.Message}");
                }
            }
        }
        else
        {
            project.SendInfoToLog($"Папка не найдена: {folder}");
        }
    }
}
PS. Берет профиль папку по текущему логину. те профиль папка должна называтся как и логин.

C#:
Развернуть Свернуть Копировать
Project/Profile/{-Profile.Login-}
Добрый вечер, по вашему опыту какие категории файлов весят больше всего? Хотя бы в процентном соотношении, чтобы знать что можно сразу удалить. Спасибо:)
 
Добрый вечер, по вашему опыту какие категории файлов весят больше всего? Хотя бы в процентном соотношении, чтобы знать что можно сразу удалить. Спасибо:-)
C#:
Развернуть Свернуть Копировать
        Path.Combine(profilePath, "Default", "Cache"),
        Path.Combine(profilePath, "Default", "Code Cache"),
        Path.Combine(profilePath, "Default", "Local Storage"),
        Path.Combine(profilePath, "Default", "Session Storage")


удаляй эти и не прогадаешь
 
  • Спасибо
Реакции: material
C#:
Развернуть Свернуть Копировать
    instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.WithoutBrowser, true); // Выключить браузер

если у кого не работает, удалите эту строку и сделайте перед выполеннем кода. запуск иснтанса с другим типом браузера.

лучше всего это делать да и логично после выполения основой логики.


Либо просто замените сразу ее на

C#:
Развернуть Свернуть Копировать
instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.WithoutBrowser, true); // Выключить браузер
instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.Firefox52, true); // Запустить браузер Firefox52
 
Последнее редактирование:
короче, вот рабочий вараинт для хромиум:


C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;

if (REDUCE_PROFILE_SIZE)
{
    // Выключаем браузер  и запускаем новый для прерывания текущего процесса
    instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.WithoutBrowser, true); // Выключить браузер
    instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.Firefox52x64, true); // Запустить браузер Firefox52х64

  // получаем профиль для очистки
  string profilePath = Path.Combine(project.Directory, "Profile", project.Profile.Login);

    // Список папок для очистки
    string[] foldersToClean = new string[]
    {
        Path.Combine(profilePath, "Default", "Cache"),
        Path.Combine(profilePath, "Default", "Code Cache"),
        Path.Combine(profilePath, "Default", "Download Service"),
        Path.Combine(profilePath, "Default", "Local Storage"),
        Path.Combine(profilePath, "Default", "Session Storage")
    };

    // Очистка папок
    foreach (var folder in foldersToClean)
    {
        if (Directory.Exists(folder))
        {
            foreach (var file in Directory.GetFiles(folder))
            {
                try
                {
                    File.Delete(file);
                    project.SendInfoToLog($"Удалён файл: {file}");
                }
                catch (Exception ex)
                {
                    project.SendInfoToLog($"Ошибка при удалении файла {file}: {ex.Message}");
                }
            }

            foreach (var directory in Directory.GetDirectories(folder))
            {
                try
                {
                    Directory.Delete(directory, true);
                    project.SendInfoToLog($"Удалён каталог: {directory}");
                }
                catch (Exception ex)
                {
                    project.SendInfoToLog($"Ошибка при удалении каталога {directory}: {ex.Message}");
                }
            }
        }
        else
        {
            project.SendInfoToLog($"Папка не найдена: {folder}");
        }
    }
}


куки, нагуленость и что влияет на детект итд. не удаляется. Удаляются только временный кеш.
 
Последнее редактирование:
короче, вот рабочий вараинт для хромиум:


C#:
Развернуть Свернуть Копировать
bool REDUCE_PROFILE_SIZE = true;

if (REDUCE_PROFILE_SIZE)
{
    // Выключаем браузер  и запускаем новый для прерывания текущего процесса
    instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.WithoutBrowser, true); // Выключить браузер
    instance.Launch(InterfacesLibrary.Enums.Browser.BrowserType.Firefox52x64, true); // Запустить браузер Firefox52х64

  // получаем профиль для очистки
  string profilePath = Path.Combine(project.Directory, "Profile", project.Profile.Login);

    // Список папок для очистки
    string[] foldersToClean = new string[]
    {
        Path.Combine(profilePath, "Default", "Cache"),
        Path.Combine(profilePath, "Default", "Code Cache"),
        Path.Combine(profilePath, "Default", "Download Service"),
        Path.Combine(profilePath, "Default", "Local Storage"),
        Path.Combine(profilePath, "Default", "Session Storage")
    };

    // Очистка папок
    foreach (var folder in foldersToClean)
    {
        if (Directory.Exists(folder))
        {
            foreach (var file in Directory.GetFiles(folder))
            {
                try
                {
                    File.Delete(file);
                    project.SendInfoToLog($"Удалён файл: {file}");
                }
                catch (Exception ex)
                {
                    project.SendInfoToLog($"Ошибка при удалении файла {file}: {ex.Message}");
                }
            }

            foreach (var directory in Directory.GetDirectories(folder))
            {
                try
                {
                    Directory.Delete(directory, true);
                    project.SendInfoToLog($"Удалён каталог: {directory}");
                }
                catch (Exception ex)
                {
                    project.SendInfoToLog($"Ошибка при удалении каталога {directory}: {ex.Message}");
                }
            }
        }
        else
        {
            project.SendInfoToLog($"Папка не найдена: {folder}");
        }
    }
}


куки, нагуленость и что влияет на детект итд. не удаляется. Удаляются только временный кеш.
Для CEF этот код можно использовать?
 
если нужно, сделаю для хрома
Благодарю, да я увидел что для хромиума, поэтому и спросил) Можно пожалуйста для движка CEF сделать адаптацию кода, я думаю тут многим это будет полезно, я давно наблюдаю за этой темой и тяжко идет в общем понимание, так и не решил проблему с пухнущими папками
 
Благодарю, да я увидел что для хромиума, поэтому и спросил) Можно пожалуйста для движка CEF сделать адаптацию кода, я думаю тут многим это будет полезно, я давно наблюдаю за этой темой и тяжко идет в общем понимание, так и не решил проблему с пухнущими папками
У тебя профили по какому пути?


/папка проекта/Profile/{-Profile.Login-}

сойдет?
 
У тебя профили по какому пути?


/папка проекта/Profile/{-Profile.Login-}

сойдет?

Да, именно такая структура - проект/profile (в нем папки с профилями)

{-Profile.Login-} - а вот это что означает в пути?
 

Вложения

  • ScreenShot00161.jpg
    ScreenShot00161.jpg
    40,2 KB · Просмотры: 6

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)