Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ARCHIVEZ VOTRE PROJET .NET FACILEMENT


Information sur la source

Catégorie :Fichiers / Disque Source .NET ( DotNet ) Classé sous : sharpziplib, regex, xml, archivage Niveau : Expert Date de création : 08/07/2005 Date de mise à jour : 08/07/2005 15:30:14 Vu / téléchargé: 6 638 / 11 147

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


Description

J'avais besoin de pouvoir archiver correctement les sources de mes projets.
Le problème c'est que lorsque l'on zippe le dossier dans notre solution, on ajoute automatiquement les bin et autres fichiers inutiles.

J'ai donc eu l'idée de me faire une classe qui récupère que les fichiers nécessaires à ma solution et les ajoute à un fichier zip. Et étant d'un naturel partageur, j'ai décidé d'élargir la classe en gérant les solutions crées avec SharpDevelop.

Avec cette classe, vous pouvez donc archiver tous vos projets crées avec Visual Studio .NET 2003 et SharpDevelop 1.x. Le support des projets Visual Studio .NET 2005 est en cours (il me reste que les projets web).


 

Source

  • // pour l'utilisation, c'est très simple :
  • // configuration de la fenêtre de sélection du projet
  • openFileDialog1.InitialDirectory =
  • Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
  • openFileDialog1.Multiselect = false;
  • openFileDialog1.AddExtension = true;
  • openFileDialog1.CheckFileExists = true;
  • openFileDialog1.CheckPathExists = true;
  • openFileDialog1.Title = "Choisissez la solution que vous voulez zipper :";
  • openFileDialog1.Filter = "Solution Visual Studio .NET 2003/2005 (*.sln) |*.sln|Solution SharpDevelop 1.x (*.cmbx) |*.cmbx";
  • if (openFileDialog1.ShowDialog() == DialogResult.OK) {
  • vbMaf.Utils.SolutionType st;
  • // Récupération du type de projet
  • st = (openFileDialog1.FilterIndex == 1 ?
  • vbMaf.Utils.SolutionType.VSNet :
  • vbMaf.Utils.SolutionType.SharpDevelop);
  • // Initialisation de la classe SolutionExtractor
  • vbMaf.Utils.SolutionExtractor se =
  • new vbMaf.Utils.SolutionExtractor(openFileDialog1.FileName, st);
  • // Configuration de la fenêtre permettant de choisir
  • // l'emplacement pour la sauvegarde
  • saveFileDialog1.InitialDirectory =
  • Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
  • saveFileDialog1.Filter = "Fichier ZIP (*.zip)|*.zip";
  • saveFileDialog1.OverwritePrompt = true;
  • if (saveFileDialog1.ShowDialog() == DialogResult.OK) {
  • // si l'utilisateur répond OK, alors on crée le ZIP
  • se.ZipSolution(saveFileDialog1.FileName);
  • MessageBox.Show(this,
  • "L'archivage de la solution est terminé.\n" + saveFileDialog1.FileName,
  • this.Text,
  • MessageBoxButtons.OK,
  • MessageBoxIcon.Information);
  • }
  • }
// pour l'utilisation, c'est très simple :

// configuration de la fenêtre de sélection du projet
openFileDialog1.InitialDirectory = 
	Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
openFileDialog1.Multiselect = false;
openFileDialog1.AddExtension = true;
openFileDialog1.CheckFileExists = true;
openFileDialog1.CheckPathExists = true;
openFileDialog1.Title = "Choisissez la solution que vous voulez zipper :";

openFileDialog1.Filter = "Solution Visual Studio .NET 2003/2005 (*.sln) |*.sln|Solution SharpDevelop 1.x (*.cmbx) |*.cmbx";

if (openFileDialog1.ShowDialog() == DialogResult.OK) {
	vbMaf.Utils.SolutionType st;

	// Récupération du type de projet
	st = (openFileDialog1.FilterIndex == 1 ? 
		vbMaf.Utils.SolutionType.VSNet : 
		vbMaf.Utils.SolutionType.SharpDevelop);

	// Initialisation de la classe SolutionExtractor
	vbMaf.Utils.SolutionExtractor se = 
		new vbMaf.Utils.SolutionExtractor(openFileDialog1.FileName, st);

	// Configuration de la fenêtre permettant de choisir 
	// l'emplacement pour la sauvegarde
	saveFileDialog1.InitialDirectory = 
		Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
	saveFileDialog1.Filter = "Fichier ZIP (*.zip)|*.zip";
	saveFileDialog1.OverwritePrompt = true;

	if (saveFileDialog1.ShowDialog() == DialogResult.OK) {
		// si l'utilisateur répond  OK, alors on crée le ZIP
		se.ZipSolution(saveFileDialog1.FileName);
			MessageBox.Show(this,
			"L'archivage de la solution est terminé.\n" + saveFileDialog1.FileName,
			this.Text,
			MessageBoxButtons.OK,
			MessageBoxIcon.Information);
	}
}

Conclusion

Avec cette sources, vous verrez comment utiliser les expressions régulières, lire un fichier xml, utiliser la librairie SharpZipLib (http://www.icsharpcode.com), les enums... et manipuler les chaines de caractères.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

08 juillet 2005 15:30:14 :
mise en page de l'exemple

Commentaires et avis

signaler à un administrateur
Commentaire de mosquitos le 11/07/2005 09:36:14

pas mal, bien ficelé... juste une remarque, pour ma part j'utilise souvant une solution qui contient plusieur projet... style dans la meme solution un projet clien et un projet serveur (juste pour shématiser ;) )... mais dans ce cas la, l'archivage ne fonctionne pas...dommage

signaler à un administrateur
Commentaire de sebseb42 le 19/07/2005 14:27:27

pourquoi ne pas plus simplement creer recursivement une liste avec les fichiers desirés (ceux qui match certaines extentions prise dans une liste) et ensuite donner cette liste a zip ?

ou plus simple creer une liste en disant que les fichiers n'etant pas .exe, .pdb, .obj (etc...) ont inclus, ensuite l'utilisateur n'aurait qu'as choisir le type de fichier qu'il veut archiver ouo pas

enfin c'est une idee :)

signaler à un administrateur
Commentaire de sebmafate le 19/07/2005 17:04:49 administrateur CS

lol... nan le plus, c'est de construire la liste de fichiers par rapport aux fichiers *.sln, *.csproj...
c'est tout simplement tes sources.

signaler à un administrateur
Commentaire de sebseb42 le 19/07/2005 19:10:30

oui mais il n'y a pas que les sources qui sont utiles generalement...
qu'est-ce qu'il y a de plus que les sources et les fichiers interessant dans un dossier de projet qui ne soit pas filtrable sur l'extention ?

je proposais juste ca, ca permet de pouvoir faire de l'archivage de n'importe quoi beaucoup plus facilement, par exemple tu met les extentions .java et autre et tu peux faire de l'archivage de projet Eclipse... mais tu peux aussi archiver uniquement les images d'un ensemble de sous-dossiers, etc...

enfin si tu prefere t'imposer des limites et des complexites, c'est ton probleme

signaler à un administrateur
Commentaire de sebmafate le 19/07/2005 19:19:44 administrateur CS

le but de cette classe n'est pas l'archivage de photos. Mais d'archiver mes projets .Net (je travaille avec VS.NET2k3 et VS.NET2k5)... quand tu sauvegardes les sources, ce n'est pas la peine de récupérer les builds et autres fichiers temporaires.
Si tu construis bien ta solution, tous les fichiers se retrouvent dans l'archive à la fin.

Maintenant, dans cette source l'aspect important n'est pas l'archivage de projets en tant que tel, mais de montrer comment on peut utiliser les expressions régulières pour parser un fichier text, comment utiliser les classes XML pour parcourir un document et enfin comment créer un ZIP avec la SharpZipLib.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

regex pour balises xml et html [ par romagny13 ] Bonjour,quelquun aurait t'il une bonne expression reguliere pour trouver les balises HTML ou XML ?je cherches pas tres complique la mais jai juste un Generation de classes à partir d'un fichier XML complexe [ par ip2x ] Bonjour, comme indiqué dans le sujet, je cherche a generer des fichiers classe a partir d'un fichier XML assez complexe et, il faut bien l'admettre, j PB XML non-formaté [ par yanis7518 ] Slt à tous et à toutes,Je cherche à parser un fichier XML, le problème est que ce fichier n'est pas formaté comme un fichier XML ( je sais c'est pas t regex recherche * [ par NX06 ] Bonjour,Je souhaiterai touver l'astuce pour utiliser regex, je m'explique :la chaine recherché est ceci : rolala toto="tatatiti"  tututete tata feypto renommer une balise XML [ par mathmax ] Bonjour,Auriez-vous une méthode pour renommer une balise d'un XmlDocument ?merci d'avance.Mathmax Lire n'importe quel fichier XML et stocker les infos [ par romagny13 ] Bonjour je recherche des ressources pour savoir comment bien lire et stocker les informations des fichiers XMLbien sur je connais deja DOM,SAX (xmlrea Xml, base de données [ par mathmax ] Bonjour,Je voudrais importer le contenu d'un fichier XML dans une base de donnée SQL Server. J'aimerais savoir quelle est la meilleure méthode pour pr XML : fichier wsdl et fichier xsd??? [ par yanis7518 ] Salut a tous,Voila je dois parser un fichier XML afin de recuperer des données. Cependant lorsque je le parse a l'aide de la classe XPATH ce dernier s SharpZipLib Erreur de Décompression [ par charles84 ] Bonjour,J'ai créé un programme en C# avec la libraire SharpZipLib 0.84... J'ai fais les tests et je me suis apercu que mon programme ne fonctionnait p Documentation XML [ par ducker88 ] Bonjour à tous,J'aimerai savoir s'il existe un outil dans VS2005 qui permettrait de generer la documentation creer avec les tag de documentation.Merci


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.