Вопрос ZipFile & c#, некоректная директория

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
21 Дек 2020
Сообщения
169
Реакции
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
string zipPath = "C:\\test\\client.zip";
string extractPath = "C:\\test\\";

ZipFIle.ExtractToDirectory(zipPath, extratPath);
(может будет опечатка код по памяти писал, но сути не меняет так-то)

Ошибка: Некоректный символ/директория
Помогите без етого никак))
пж
 
C#:
Expand Collapse Copy
string zipPath = @"C:\test\client.zip";
string extractPath = @"C:\test";
ZipFile.ExtractToDirectory(zipPath, extractPath);
1658421219218.png

try
 
Последнее редактирование:
Используй
C#:
Expand Collapse Copy
Path.Combine()
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
буквы точно не русские стоят? ?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
буквы точно не русские стоят? ?
точно мужик, уже незнаю что делать новый проект долго буду писать нужно уложиться в неочень долгий срок :(((((( совсем настроение проебал
 
точно мужик, уже незнаю что делать новый проект долго буду писать нужно уложиться в неочень долгий срок :(((((( совсем настроение проебал
ну дай срк значит под хайд, сам гляну
 
Что сложного то?
Тебе нужно распаковать из архива файл(ы) в определённую папку?
Если нужно распаковать просто без пароля, то так:
C#:
Expand Collapse Copy
namespace Shabla
{
    using System;
    using System.IO;
    using System.IO.Compression;

    public static class ZipLib
    {
        private static readonly string zipPath = @"C:\MyArchive.zip", extractPath = @"C:\UnpackedFiles";
        public static void Inizialize()
        {
            if (File.Exists(zipPath))
            {
                 ZipFile.ExtractToDirectory(zipPath, extractPath, Encoding.UTF8); // Работает прекрасно
            }
            else
            {
                Console.WriteLine($"Архив {zipPath} не найден!");
            }
        }
    }
}
Второй способ по распаковки файлов:
C#:
Expand Collapse Copy
namespace Shabla
{
    using System;
    using System.IO;
    using System.IO.Compression;
    using System.Text;

    public static class ZipLib
    {
        private static readonly string zipPath = @"C:\MyArchive.zip", extractPath = @"C:\UnpackedFiles";

        public static void Inizialize()
        {
            if (File.Exists(zipPath))
            {
                using ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Read, Encoding.GetEncoding(866));
                foreach (ZipArchiveEntry entry in archive.Entries)
                {
                    string completeFileName = Path.GetFullPath(Path.Combine(extractPath, entry.FullName));
                    if (entry.Name == "")
                    {
                        Directory.CreateDirectory(Path.GetDirectoryName(completeFileName));
                        continue;
                    }
                    entry.ExtractToFile(completeFileName, true);
                    Console.WriteLine($"Распаковали файл {entry.FullName}");
                }
            }
            else
            {
                Console.WriteLine($"Архив {zipPath} не найден!");
            }
        }
    }
}
Если нужно распаковать с паролем, то используй либу ICSharpCode.SharpZipLib

P.S: Если у тебя проблема с путями, то всегда можно попробовать использовать Replace("/", "\\")
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ща
 

Вложения

  • 1658448691581.png
    1658448691581.png
    298.5 KB · Просмотры: 13
  • 1658448718919.png
    1658448718919.png
    298.5 KB · Просмотры: 16
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.


А ты пробовал запускать не в дебаге? А напрямую!
У меня всё работает нормально.
Либо попробуй заменить Replace("/", "\\") или в обратку.
Либо пробуй второй вариант
я все перепробывал
 
Запиши видео, так проще будет посмотреть что ты не так делаешь!
Пробуй другой путь указать не на диске С, а на другом к примеру.
Код полностью рабочий и что там у тебя не получается...
Запусти файл вне студии и проверь исключения (если есть подробно)
Убери Release на Debug и проверь ещё там работу распаковки.
Возьми второй метод (используй его и скрин приложи работы)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Запиши видео, так проще будет посмотреть что ты не так делаешь!
Пробуй другой путь указать не на диске С, а на другом к примеру.
Код полностью рабочий и что там у тебя не получается...
Запусти файл вне студии и проверь исключения (если есть подробно)
Убери Release на Debug и проверь ещё там работу распаковки.
Возьми второй метод (используй его и скрин приложи работы)
все испробывал не по 1 разу кроме исключений
Запиши видео, так проще будет посмотреть что ты не так делаешь!
Пробуй другой путь указать не на диске С, а на другом к примеру.
Код полностью рабочий и что там у тебя не получается...
Запусти файл вне студии и проверь исключения (если есть подробно)
Убери Release на Debug и проверь ещё там работу распаковки.
Возьми второй метод (используй его и скрин приложи работы)
скоро дам я щас занят спсп
 
буквы точно не русские стоят? ?
Вообще проверка на инвалидность (как указано в стеке) происходит по принципу поиска '\0' и '/', тут не причастны символы кириллицы.
 
Указывай путь вот так - ".\\bin\\file.exe" или "C:\\Windows\\file.exe"
C#:
Expand Collapse Copy
string  ZIP = "C:\\test\\client.zip";

string PATH = "C:\\test";

ZipFile.ExtractToDirectory(ZIP, PATH);
 
Назад
Сверху Снизу