У меня есть этот код для распаковки
try
{
long currentBytes = 0;
long totalBytes = 0;
long sizeMaximo = 0;
long currentFinal = 0;
ArchivoFtp.BorrarDirectorioArchivo(nameDirectoryOrigin, true);
nombreDirectorioOrigen = Path.GetFullPath(nameDirectoryOrigin);
using (ZipArchive archive = ZipFile.OpenRead(nameDirectoryOrigin+nameArchiveDescompress))
{
totalBytes = archive.Entries.Sum(e => e.Length);
currentBytes = 0;
if (totalBytes > 2147483647)
{
sizeMaximo = totalBytes / 1024;
}
else
{
sizeMaximo = totalBytes;
}
progressBar.Invoke(
(MethodInvoker)(() => progressBar.Maximum = Convert.ToInt32(sizeMaximo)));
foreach (ZipArchiveEntry entry in archive.Entries)
{
string fileName = Path.Combine(nameDirectoryDestiny,entry.FullName);
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
using (Stream inputStream = entry.Open())
using (Stream outputStream = File.OpenWrite(fileName))
{
Stream progressStream = new StreamWithProgress(outputStream, null,
new BasicProgress<int>(i =>
{
currentBytes += i;
}));
inputStream.CopyTo(progressStream);
if (totalBytes > 2147483647)
{
currentFinal = currentBytes / 1024;
}
else
{
currentFinal = currentBytes;
}
ArchivoFtp.CalcularPorcentajeOperacion(currentFinal, sizeMaximo, label, mensajePreProceso);
progressBar.Invoke(
(MethodInvoker)(() => progressBar.Value = Convert.ToInt32(currentFinal)));
}
File.SetLastWriteTime(fileName, entry.LastWriteTime.LocalDateTime);
}
}
label.Invoke(
(MethodInvoker)(() => label.Text = mensajePostProceso));
}
catch(Exception e)
{
MessageBox.Show("Ha ocurrido un error: " + e);
}
Но у меня возникла проблема в этом пункте
string fileName = Path.Combine(nombreDirectorioDestino,entry.FullName);
Directory.CreateDirectory(Path.GetDirectoryName(fileName));
Я распаковываю архив, в котором есть папки, и внутри этих папок есть архивы, проблема в том, что я не могу найти доступ к этому архиву.
Кто-нибудь имеет представление о том, как получить доступ?
Мне нужно распаковать папки и архивы в папки
Vb сказать мне: не удается найти часть пути
Я могу понять, что в нем отсутствует файл, который находится внутри этого файла. не представляет его.
Спасибо,