Problème avec un ifstream et un nom de fichier avec espace
Bonjour à tous,
J'ai un programme qui me permet d'envoyer des fichiers par HTTP. Pour cela, je lisais le contenu des fichiers en faisant :
Code:
1 2 3 4 5 6 7
|
ifstream file (filename, ios::in|ios::binary|ios::ate);
size = file.tellg();
file.seekg (0, ios::beg);
char * bufferToSend = new char[size];
file.read (bufferToSend, size );
//Envoi du buffer par http |
puis j'envoyais ce buffer en plusieurs fois.
C'était assez crade parce que ca chargait tout en mémoire et j'avais des erreurs sur les gros fichiers.
Du coup j'ai modifié mon code avec ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
ifstream file (filename, ios::in|ios::binary|ios::ate);
size = file.tellg();
file.seekg (0, ios::beg);
for (int i = 0 ; i < size; i +=4096)
{
//G simplifié mais en gros c ca
char * bufferToSend = new char[4096];
file.read (bufferToSend, 4096);
//Envoi du buffer par http
} |
Donc je reçois bien mes fichiers mais g un GROOOOS problème lorsque le fichier que j'envoie contient un espace. Le fichier recu fait la meme taille mais le contenu est completement différent.
Y aurait-il un bug dans la méthode read lorsque les fichiers ont des espaces dans le nom ?
Merci d'avance pour toutes vos réponses.