Comment extraire un fichier spécifique (ou avoir un accès en streaming) à partir de tar.gz (fichiers tar et dossiers puis gzippés) en utilisant SharpZipLib? Ou peut-être que quelqu'un a une bibliothèque similaire pour le faire dans .NET cf 3.5?Comment extraire ou accéder à un fichier spécifique dans gzip en utilisant SharpZipLib?
2
A
Répondre
6
using (FileStream inputStream = File.OpenRead (aPackage))
{
using (GzipInputStream gzStream = new GzipInputStream (inputStream))
{
using (TarInputStream tarStream = new TarInputStream (gzStream))
{
TarEntry entry = tarStream.GetNextEntry();
while (entry != null)
{
if (entry == theOneIWant)
{
tarStream.CopyEntryContents (outputStream);
break;
}
entry = tarStream.GetNextEntry();
}
}
}
}
0
Cela devrait le faire pour vous.
public static void Main(string[ args)
{
TarInputStream tarIn = new TarInputStream(new FileStream(@args[0], FileMode.Open, FileAccess.Read));
TarEntry curEntry = tarIn.GetNextEntry();
while (curEntry != null)
{
if (curEntry.Name.EndsWith("foo.txt", StringComparison.CurrentCultureIgnoreCase))
{
byte[] outBuffer = new byte[curEntry.Size];
FileStream fs = new FileStream(@"foo.txt", FileMode.Create, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs);
tarIn.Read(outBuffer, 0, (int)curEntry.Size);
bw.Write(outBuffer,0,outBuffer.Length);
bw.Close();
}
curEntry = tarIn.GetNextEntry();
}
tarIn.Close();
}
Questions connexes
- 1. sharpziplib + extraire un seul fichier
- 2. Comment puis-je extraire un fichier zip multi-volume en utilisant SharpZipLib en C#?
- 3. comment puis-je télécharger et extraire un seul fichier de http en utilisant sharpziplib dans C#?
- 4. Comment puis-je extraire ou décompresser un fichier gzip en utilisant php?
- 5. Extraire un fichier spécifique de l'archive dans UWP
- 6. Comment décompresser gzip ou dégonfler dans Silverlight
- 7. Comment accéder à un élément HTML spécifique en utilisant C#?
- 8. fichier gzip Décompresser dans le répertoire spécifique
- 9. Réinitialiser ou extraire le fichier spécifique à l'aide de Grunt
- 10. Comment utiliser SharpZipLib dans une solution de fichier unique?
- 11. Comment analyser l'en-tête du fichier gzip à partir d'un flux gzip en C#?
- 12. Accéder à un nœud nommé spécifique dans un fichier KML en utilisant VBS
- 13. Comment puis-je accéder à une plage spécifique d'octets dans un fichier en utilisant Perl?
- 14. Comment extraire le texte d'un fichier à un fichier en utilisant sed ou grep?
- 15. Meilleur outil gzip que SharpZipLib pour Windows Mobile?
- 16. Décompressez tar.gz avec SharpZipLib
- 17. Comment extraire du texte d'une zone spécifique dans un fichier PDF en utilisant Python?
- 18. Accéder à un enregistrement spécifique en utilisant lseek
- 19. .htaccess Autoriser un fichier spécifique à accéder
- 20. SharpZipLib ~ Comment extraire des fichiers spécifiques d'un zip
- 21. accéder à un fichier avec un lien spécifique dans django
- 22. Comment extraire un fichier dans Sharepoint 2007 en utilisant un service distant ou un appel HTTP?
- 23. Comment extraire un lien spécifique dans un fichier json
- 24. Comment extraire une chaîne spécifique dans un fichier en utilisant awk, sed ou d'autres méthodes dans bash?
- 25. Comment accéder à un fichier en utilisant un chemin relatif ou un chemin virtuel?
- 26. Comment utiliser sharpziplib dans Monotouch?
- 27. Comment accéder à un fichier en utilisant "file_put_contents" en PHP?
- 28. Comment extraire ou diffuser DATE dans MS accéder à SQL?
- 29. Accéder à un fichier spécifique en Flash avec fileReference
- 30. Extraire les données XML du fichier gzip en utilisant apache tika?
Comment pourriez-vous identifier l'entrée "theOneIWant"? Je pensais que vous deviez le trouver par son nom, y a-t-il un autre moyen? :) – Faraday
@Vijay en utilisant l'une des propriétés de TarEntry, qui serait probablement Nom (ou Fichier.) Impossible de le rendre trop facile maintenant, puis-je? : D – Thomas
lol, assez juste. Peut-être que je lui ai donné trop d'aide! :) – Faraday