cs_fcolo
Messages postés201Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention20 février 2007
-
19 mai 2006 à 09:52
cs_fcolo
Messages postés201Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention20 février 2007
-
19 mai 2006 à 11:15
Bonjour,
je réalise une application de copie de fichier (car le File.Copy() est sans interface).
Tout fonctionne bien à par que mon application bloque lors de la copie des fichiers Thumbs.db (je crois que c'est les miniatures des image/video créer par windows).
Mon application ce fige.
Savez comment je pourrais contourner ce problème et surotut à quoi c'est dut?
Voila le bout de code pour copier un fichier:
private
Encoding encoding = System.Text.
Encoding.GetEncoding(
"iso-8859-1");
int
SIZE_BIFF = 512;
publiceventwriteFile nbWrite;
public
delegate
void
writeFile(
String file,
int nbChar);
public
bool copyfile(
String sourceFilePath,
String destinationFilePath,
bool append)
{
StreamReader sr =
null;
StreamWriter sw =
null;
if(
File.Exists(sourceFilePath))
{
char[] buff =
new
char[SIZE_BIFF];
int nbread = 0;
label1.Text = sourceFilePath;
this.progressBar1.Minimum = 0;
this.progressBar1.Value = 0;
this.progressBar1.Maximum =
Convert.ToInt32(
new
FileInfo(sourceFilePath).Length);
sr =
new
StreamReader(sourceFilePath,encoding);
sw =
new
StreamWriter(destinationFilePath,append,encoding);
cs_fcolo
Messages postés201Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention20 février 20072 19 mai 2006 à 10:39
Le code bloque ici:
sw = new StreamWriter(destinationFilePath,append,encoding);
je ne veux pas faire un File.Copy() car je veux une interface (un peu comme super copieur) pour voir le pourcentage de copie effectué.
A moins que je ne sache pas comment faire, le file.Copy() est silentieux (pas d'interface).
dgouttegattat
Messages postés129Date d'inscriptionmardi 22 novembre 2005StatutMembreDernière intervention30 décembre 20073 19 mai 2006 à 11:06
Bonjour,
Ça n'a rien à voir avec ton problème, je fais juste une suggestion : tu devrais utiliser la classe FileStream plutôt que StreamReader/StreamWriter pour copier des fichiers. Avec FileStream (comme avec toutes les classes *Stream comme BufferedStream, MemoryStream...) tu ne manipules que des bytes, pas des caractères, donc tu n'as pas à te soucier de l'encodage des fichiers.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_fcolo
Messages postés201Date d'inscriptionmercredi 8 février 2006StatutMembreDernière intervention20 février 20072 19 mai 2006 à 11:15
destinationFilePath = C:\Documents and Setting\Frédéric\Bureau\9empty\Thumbs.db
Mais ca fonctionne pour écraser d'autres types de fichiers, ca merde que sur celui là.
Lorsque ca bloque ce que ca fait:
Lors de la copie d'un fichier, j'ai une form qui s'ouvre avec une progressbar pour visualiser le transfert.
Là
la form s'ouvre ( ouverte avant l'appel à la fonction ) et apres il ne
se passe rien car le programme attend (indéfiniment apparemnt, dejà
10min que j'attend) sur la ligne:
sw = new StreamWriter(destinationFilePath,append,encoding);
Je vais voir si ce fichier n'est pas protégé par windows ou autre.
Merci [auteurdetail.aspx?ID=628847 dgouttegattat], je vais regarder ca. f.colo