Ich habe eine komprimierte Datei .rar .7z, .tar und .zip und möchte den physischen Dateinamen umbenennen, der in der oben komprimierten Datei verfügbar ist, die mit C # archiviert wurde.
Ich habe dies mit einer Sharpcompress-Bibliothek versucht, kann jedoch keine solche Funktion zum Umbenennen von Datei- oder Ordnernamen in .rar .7z-, .tar- und .zip-Dateien finden.
Ich habe auch versucht, die DotNetZip-Bibliothek zu verwenden, aber sie wird nur unterstützt. Zip zeigt, was ich mit der DotNetZip-Bibliothek versucht habe.
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());
}
}
Aber genau wie oben möchte ich auch für .7z, .rar und .tar. Ich habe viele Bibliotheken ausprobiert, aber trotzdem keine genaue Lösung gefunden.
Bitte hilf mir.
var result = Path.ChangeExtension(myffile, ".jpg");
-> docs.microsoft.com/en-us/dotnet/api/…the rename
nach Extract () as tun könnenzip
.Antworten:
Dies ist eine einfache Konsolenanwendung zum Umbenennen von Dateien in .zip
quelle
Betrachten Sie 7zipsharp:
https://www.nuget.org/packages/SevenZipSharp.Net45/
7zip selbst unterstützt viele Archivformate (ich glaube alles, was Sie erwähnt haben) und 7zipsharp verwendet das echte 7zip. Ich habe 7zipsharp nur für .7z-Dateien verwendet, aber ich wette, es funktioniert für andere.
Hier ist ein Beispiel eines Tests, bei dem eine Datei mithilfe der ModifyArchive-Methode umbenannt zu werden scheint. Ich schlage vor, dass Sie darin zur Schule gehen:
https://github.com/squid-box/SevenZipSharp/blob/f2bee350e997b0f4b1258dff520f36409198f006/SevenZip.Tests/SevenZipCompressorTests.cs
Hier ist der Code etwas vereinfacht. Beachten Sie, dass der Test eine 7z-Datei für den Test komprimiert. Das ist unerheblich, es könnte sich um .txt usw. handeln. Beachten Sie auch, dass die Datei nach Index im an ModifyArchive übergebenen Wörterbuch gefunden wird. In der Dokumentation erfahren Sie, wie Sie diesen Index aus einem Dateinamen abrufen können (möglicherweise müssen Sie eine Schleife erstellen und vergleichen).
quelle