public static void CopierFichier(string pNomFichier1, string pNomFichier2)
{
// Initialisation des flux
Stream streamFichier1 = new StreamReader(pNomFichier1).BaseStream ;
Stream streamFichier2 = new FileStream(pNomFichier2, FileMode.Create, FileAccess.Write);
// Initialisation du buffer à 32 Ko
int taille = 1024 * 32;
Byte[] buffer = new Byte[taille];
int bytesRead = 0;
// Copie du flux 1 vers le flux 2
do
{
bytesRead = streamFichier1.Read(buffer, 0, taille);
streamFichier2.Write(buffer, 0, bytesRead);
}
while (bytesRead > 0);
// Fermeture des flux
streamFichier1.Close();
streamFichier2.Close();
}
L'argument pNomFichier1 correspond au nom du fichier à copier et le 2ème correspond au nom du fichier créé par la fonction.
4 commentaires:
Pourquoi se compliquer la vie pour copier un fichier vers un autre?
File.Copy n'aurait-il pas fait l'affaire?
Si le but était de lire depuis un Stream quelconque (memoire, network...) pour l'ecrire dans une fichier j'aurais compris mais la je ne vois pas l'interet de tout pour simplement 2 fichiers.
Pourrais-tu m'expliquer?
Voici mon explication :
Je dirai que mon exemple est très scolaire et que pour une simple copie de fichier, la fonction File.Copy est parfaite.
Cependant, le code ci-dessus a l'avantage de s'exécuter facilement dans une application Console et montre bien l'utilisation de la classe Stream.
Mmmmm ! J'ai rien compris mais je vais essayer de tout relire...
merci très interessant comme information.
Enregistrer un commentaire