2009-07-08 13 views
0

J'ai un fichier nommé « mon fichier.pdf » et je ne peux pas supprimer ce fichier avec ce code:Supprimer le fichier avec des espaces blancs sur son nom

if (remove("/var/tmp/\"my file.pdf\"") != 0) 
      printf("Error deleting file\n"); 

Toute suggestion différente de faire des regex pour remplacer '{whitespace}' pour '\ {whitespace}'?

+0

Vous êtes sûr que c'est un problème dû aux espaces? –

+0

Notez que votre erreur printf n'inclut pas de retour de chariot de fin (\ n) et qu'il est habituel de mettre la sortie d'erreur en erreur standard, c'est-à-dire fprintf (stderr, "Erreur de suppression de fichier \ n"); – jmtd

+0

@jmtd Je sais que c'était juste un exemple rapide. Merci quand même. –

Répondre

5

La fonction remove() n'utilise pas d'expressions rationnelles. Votre fichier contient-il vraiment des guillemets ainsi que des espaces? Si ce n'est pas le cas, et si le fichier contient un seul espace, alors:

if (remove("/var/tmp/my file.pdf") != 0) 

devrait fonctionner.

+0

C'était ma première tentative et ça ne fonctionnait pas. Mais j'ai encore essayé et ça marche maintenant. Ty –

0

Que diriez-vous

if (remove("\"/var/tmp/my file.pdf\"") != 0) 
    printf("Error deleting file"); 

?

+0

Déjà essayé, ne fonctionne pas. –

Questions connexes