Créer un logiciel pour partitionner & départitionner vos dossiers, logiciels, images ...

Paradise'

Premium
Inscription
30 Juin 2013
Messages
4 259
Réactions
4 384
Points
20 795
1404831415-gtp-gif.gif

Créer un logiciel pour partitionner & départitionner vos dossiers, logiciels, images ...

Donc avant de commencé il vous faudra cette extension d'application que j'ai faite afin de vous faire gagner du temps, elle évite d'ajouter des classes.

Entypo_e79a(0)_128.png

Ensuite on passe au design de l'application.
Screenshot_1.png


Bien sur comme d'habitude il s'agit d'un exemple que je vous propose.
Voila la liste des items à mettre avec le nom que ils ont dans mon logiciel donc afin que vous modifier les codes.

La textbox de source : txtSource
Le bouton de source : btnBrowseSrc
La textbox de destination : txtDestination
Le bouton de destination : btnBrowseDest
NuméricUpDown de File Size ( Ko ) : numUpDownFileSize
Le radio bouton de Partitionner : radioBtnpartitionner
Le radio bouton de Départitionner : radioBtndépartitionner
Le bouton sans texte : btn
Le bouton Quitter : btnExit
Un openFileDialog : openFileDialog1
Un folderBrowserDialog : folderBrowserDialog1
Ainsi que un statusStrip : Avec un label Ready : toolStripStatusLblStatus
Entypo_e731(0)_128.png

Ensuite on va passer à la partie intéressante, le codage.
On va le faire dans l'ordre, donc on commence par : déclarer l'utilisation de l'extension.
using Splitter;

Ensuite on va mettre les deux petits bout de code pour changer le texte du LabelStatus.
private void fSplitter_CopyDone(long ms, ActionType aType)
{
string txt = string.Format("Finished! (Action: {0} - duration: {1:N3} sec)", aType, ms / 1000d);
this.statusStrip.Invoke(new EventHandler(delegate(object o, EventArgs e) { this.toolStripStatusLblStatus.Text = txt; }));
}

private void fSplitter_PartialCopyDone(long ms, long fileSize, long copiedSize, int partNb, ActionType aType)
{
string txt = string.Format("Action: {0} - Part {1}, Total duration: {2:N3} sec", aType, partNb, ms / 1000d);
this.statusStrip.Invoke(new EventHandler(delegate(object o, EventArgs e) { this.toolStripStatusLblStatus.Text = txt; }));
}
Screenshot_2.png

Donc ensuite on va faire le bouton de Source :
if (this.radioBtnpartitionner.Checked)
{
if (this.openFileDialog1.ShowDialog() == DialogResult.OK) this.txtSource.Text = this.openFileDialog1.FileName;
}
else
{
if (this.folderBrowserDialog1.ShowDialog() == DialogResult.OK) this.txtSource.Text = this.folderBrowserDialog1.SelectedPath;
}

Puis celui de Destination :
if (this.folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
this.txtDestination.Text = this.folderBrowserDialog1.SelectedPath;
}

Ensuite on passe au code des deux radios bouton.
On commence par le " Partitionner " :
if (this.radioBtnpartitionner.Checked)
{
this.btn.Text = "Partitionner";
this.txtDestination.Enabled = true;
this.numUpDownFileSize.Enabled = true;
}

Puis le " Départitionner "
if (this.radioBtndépartitionner.Checked)
{
this.btn.Text = "Départitionner";
this.txtSource.Text = string.Empty;
this.txtDestination.Enabled = false;
this.numUpDownFileSize.Enabled = false;
}

Ensuite pour finir on met le code sur le bouton ou on a mit aucun texte.
this.toolStripStatusLblStatus.Text = "Attente...";
FileSplitter fSplitter = null;

if (this.radioBtndépartitionner.Checked)
{
fSplitter = new FileSplitter(this.txtSource.Text);
fSplitter.PartialCopyDone += new PartialCopyDoneEventHandler(fSplitter_PartialCopyDone);
fSplitter.CopyDone += new CopyDoneEventHandler(fSplitter_CopyDone);
fSplitter.BeginMerge();
}
else
{
fSplitter = new FileSplitter(this.txtSource.Text, this.txtDestination.Text, (int)(this.numUpDownFileSize.Value * 1024));
fSplitter.PartialCopyDone += new PartialCopyDoneEventHandler(fSplitter_PartialCopyDone);
fSplitter.CopyDone += new CopyDoneEventHandler(fSplitter_CopyDone);
fSplitter.BeginSplit();
}
Entypo_2716(2)_128.png

Voila ce tutoriel touche à sa fin.
Entypo_e700(1)_128.png

Je tiens à vous remerciez vous ainsi que @DEVR0 GTP pour m'avoir aider sur la création de ma première dll ( pas elle ) qui m'a appris leurs utilité, fonctionnement etc.
Entypo_e778(0)_128.png

Source :

1405682845-rgbk2rot.png

 
Haut