2017-08-17 1 views
0

Je veux renommer un dossier contenant des fichiers, mais cela ne fonctionne pas. Dans la base de données, il a été modifié avec succès, mais le dossier n'a pas obtenu le nouveau nom.Comment renommer un dossier contenant du contenu? - PHP

code:

if (file_exists("user/$log_username")) { 
    rename("user/$log_username", "user/$un"); 
} 

Dans le dossier il y a quelques photos et êtes fichiers, mais je suppose que le problème est que je veux renommer le dossier quand il est en cours d'exécution sur le serveur. L'utilisateur est connecté, quand je veux renommer son dossier, mais si je me déconnecte pour la première fois, le $log_username ne sera égal à rien. y-a-t'il une solution?

+0

dossier Copier nouveau nom et supprimer l'ancien dossier? – Andreas

+0

Ok, je vais l'essayer –

+0

Quel message d'erreur obtenez-vous? – axiac

Répondre

1

dossier Copier nouveau nom et supprimer l'ancien dossier lorsque l'utilisateur a ouvert une session de nous assurer que tout fonctionne comme il est censé alors que l'utilisateur est en
Ou éventuellement, lorsque la session se termine, les utilisateurs peuvent rester connectés pour toujours. Choisissez ce qui est approprié.

// Copy the folder 
copy("user/$log_username", "user/$un"); 

//Update database 
//Some code here 

// When user logs out 
Unlink("user/$log_username"); 
+0

['rmdir()'] (http://php.net/manual/fr/function.rmdir.php) échoue si le répertoire n'est pas vide. – axiac

+0

Pourquoi suis-je abaissé? – Andreas

+0

Un peu injuste de downvote parce que j'ai utilisé la mauvaise fonction n'est-ce pas? Je veux dire qu'un commentaire amical serait suffisant? – Andreas

0

Vous pouvez simplement utiliser la commande linux en php:

exec("mv $oldname $newname"); 
2

essayez ceci:

rename(realpath(dirname(__FILE__)).'/myoldfolder',realpath(dirname(__FILE__)).'/mynewfolder'); 

devrait travailler avec un lien absolu au lieu d'un parent d'un

+0

J'ai essayé ce code: rename (realpath (dirname (utilisateur)). '/ $ Log_username', realpath (dirname (utilisateur)). '/ $ Un'); et il dit: Avis: Utilisation de l'utilisateur constant indéfini - supposé 'utilisateur' –

+0

Ne pas l'utiliser comme constante mais comme chaîne plutôt dirname (__ FICHIER __)). 'user/$ log_username' __FILE__ est une constante magique de PHP: http : //php.net/manual/fr/language.constants.predefined.php aww. stackoverflow a reconfiguré le code _ _ FILE _ _ sans espaces blancs ... –