Eu tenho um arquivo compactado .rar .7z, .tar e .zip e desejo renomear o nome do arquivo físico disponível no arquivo compactado acima, arquivado usando C #.
Eu tentei isso usando uma biblioteca sharpcompress, mas não consigo encontrar esse recurso para renomear o nome do arquivo ou da pasta nos arquivos .rar .7z, .tar e .zip.
Eu também tentei usar a biblioteca DotNetZip, mas seu único suporte.Zip Veja o que eu tentei usar a biblioteca DotNetZip.
private static void RenameZipEntries(string file)
{
try
{
int renameCount = 0;
using (ZipFile zip2 = ZipFile.Read(file))
{
foreach (ZipEntry e in zip2.ToList())
{
if (!e.IsDirectory)
{
if (e.FileName.EndsWith(".txt"))
{
var newname = e.FileName.Split('.')[0] + "_new." + e.FileName.Split('.')[1];
e.FileName = newname;
e.Comment = "renamed";
zip2.Save();
renameCount++;
}
}
}
zip2.Comment = String.Format("This archive has been modified. {0} files have been renamed.", renameCount);
zip2.Save();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
Mas, na verdade, o mesmo que acima, também quero para .7z, .rar e .tar, tentei muitas bibliotecas, mas ainda não obtive nenhuma solução precisa.
Por favor me ajude.
var result = Path.ChangeExtension(myffile, ".jpg");
-> docs.microsoft.com/en-us/dotnet/api/… #the rename
após o Extract () comozip
.Respostas:
Este é um aplicativo de console simples para renomear arquivos em .zip
fonte
Considere 7zipsharp:
https://www.nuget.org/packages/SevenZipSharp.Net45/
O próprio 7zip suporta muitos formatos de arquivo (acredito que tudo o que você mencionou) e o 7zipsharp usa o 7zip real. Eu usei 7zipsharp apenas para arquivos .7z, mas aposto que funciona para outros.
Aqui está uma amostra de um teste que parece renomear um arquivo usando o método ModifyArchive, sugiro que você vá para a escola:
https://github.com/squid-box/SevenZipSharp/blob/f2bee350e997b0f4b1258dff520f36409198f006/SevenZip.Tests/SevenZipCompressorTests.cs
Aqui está o código simplificado um pouco. Observe que o teste compacta um arquivo 7z para seu teste; isso é imaterial, pode ser .txt, etc. Observe também que localiza o arquivo por índice no dicionário passado para o ModifyArchive. Consulte a documentação para obter esse índice a partir de um nome de arquivo (talvez você precise fazer um loop e comparar).
fonte