Cet article présente principalement la méthode alternative pour les autorisations insuffisantes de la fonction de déplacement de fichier ASP movefile. Cet article présente d'abord une méthode alternative, puis découvre la raison réelle. Les amis qui en ont besoin peuvent s'y référer.
Je travaille actuellement sur un projet qui consiste à écrire une instruction pour déplacer tous les fichiers du lecteur D vers le lecteur E. Il est bon de le tester dans l'environnement XP local.
Cependant, après l'avoir installé sur le serveur Windows 2003, il apparaît que les autorisations sont insuffisantes.
Le répertoire de mon site Web IIS est placé sur le lecteur D et le lecteur E n'est qu'un volume nouvellement ajouté. Certains fichiers sont très volumineux et il y en a beaucoup, mais le lecteur D n'est pas suffisant, j'ai donc proposé cette stratégie.
Après une recherche sur Baidu, bon nombre de ces problèmes ne sont rien d'autre que l'augmentation des autorisations du lecteur E ou l'utilisation du lecteur E comme répertoire virtuel.
Mais ça ne marche pas, et ça me le rappelle encore. La seule différence c'est que j'utilise un volume dynamique, alors que sous XP c'est un volume basique je ne veux pas changer le volume.
J'ai finalement trouvé la méthode suivante :
L'utilisation du movefile de fso entraînera des autorisations insuffisantes, de sorte que le code ne pourra pas être exécuté.
Utilisez donc copyfile puis deletefile pour éviter des problèmes inutiles.
Tout de suite:
Copiez le code comme suit :
Définir fso=CreateObject("scripting.filesystemobject")
fso.MoveFile "Chemin du fichier", "cible"
Cela posera des problèmes.
utiliser:
Copiez le code comme suit :
Définir fso=CreateObject("scripting.filesystemobject")
fso.CopyFile "Chemin du fichier", "Cible"
fso.DeleteFile "Chemin du fichier"
Cela a résolu le problème de manière décisive. Il peut être copié mais pas déplacé.
Mise à jour 4h30
Après quelques bricolages, il s'est avéré qu'il ne s'agissait pas d'un problème avec les autorisations du lecteur E, mais d'un problème avec les autorisations du lecteur D, c'est-à-dire le problème des autorisations du répertoire du site Web IIS.
Ajoutez un compte invité Internet au lecteur D, c'est-à-dire ajoutez un compte commençant par IUSR_. Ce compte est un compte IIS.
Ensuite, utiliser MoveFile ne pose aucun problème.
Si vous souhaitez déplacer ou supprimer un fichier, la première chose à vérifier est les autorisations du fichier source, et non les autorisations du fichier cible.
Les tutoriels sur Internet sont vraiment dangereux.