Que signifie réellement cette erreur? Qu'est-ce qu'un "lien inter-appareils"?
Il est mentionné sur cette page libuv mais il ne donne aucun détail au-delà de "lien inter-appareils non autorisé".
Il est utilisé pour EXDEV sous Linux:
Voir man rename
page de manuel:
EXDEV oldpath et newpath ne sont pas sur le même système de fichiers monté. (Linux permet à un système de fichiers d'être monté à plusieurs points, mais rename () ne fonctionne pas sur différents points de montage, même si le même système de fichiers est monté sur les deux.)
Cette erreur est également utilisée lorsqu'il y a ERROR_NOT_SAME_DEVICE
sous Windows, voir:
Pour plus d'informations, voir:
winerror.h 0x80070011
#define ERROR_NOT_SAME_DEVICE
Le système ne peut pas déplacer le fichier vers un autre lecteur de disque.
On dirait que vous essayez de renommer un fichier au-delà des limites de "périphérique" (partition).
Supposons que /tmp
Est une partition différente de /
. Cela signifie que vous n'êtes pas autorisé à le faire:
fs.rename('/tmp/myfile.txt', '/myfile.txt', ...)
(il en va de même pour fs.renameSync()
, évidemment)
Si vous souhaitez le faire, vous devez d'abord copier le fichier vers son nouvel emplacement, puis supprimer l'ancien fichier. Il existe des modules, comme mv
, qui peuvent vous aider avec cela.
Juste pour les gars qui utilisent Linux, cela se produit lorsque votre ancien chemin, c'est-à-dire /tmp
et le nouveau chemin se trouvent sur des partitions ou des disques différents.