Qu'est-ce qui a inspiré cette demande de liste de souhaits ?
L'importation de plusieurs fichiers ne parvient pas à afficher les fichiers d'un dossier en raison d'un arrêt complet du traitement lors de l'atteinte d'un chemin de fichier d'une longueur importante
Quelle amélioration souhaiteriez-vous voir ? JMP peut effectuer l'une des opérations suivantes :
- Mettre à jour MFI pour omettre ou griser les fichiers dont les longueurs de chemin sont trop longues, mais continuer à traiter tous les autres fichiers
- Mettez à jour le manifeste de l'application JMP pour autoriser des chemins plus longs afin que ceux dont le paramètre de registre est activé puissent utiliser des chemins plus longs.
Pourquoi cette idée est-elle importante ?
Dans ce cas particulier, le chemin d'accès d'un dossier était long et certains fichiers d'un dossier dépassaient la limite de 260 caractères de Windows. La manifestation était que MFI n'affichait que les 14 premiers fichiers du dossier (le 15ème étant le premier fichier à enfreindre la règle) mais il y avait de nombreux fichiers dans le dossier qui étaient corrects. MFI devrait pouvoir afficher ces fichiers.
De plus, selon l'article Windows ( https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry ), un utilisateur peut activer les longueurs de chemin longues dans son registre, MAIS le manifeste de l'application doit également être mis à jour. D'après l'article, il semble que ce soit quelque chose que JMP contrôle.
La première option répertoriée insérerait simplement un try() dans le système afin que les fichiers qui ne peuvent pas être traités ne soient pas répertoriés comme tels, mais une solution plus longue/meilleure pourrait être la dernière, où JMP permet d'utiliser de longues longueurs de chemin tant que l'utilisateur dispose des clés de registre correctes.
Pour compléter cela et suggérer que la réponse pourrait résider dans la deuxième option plutôt que dans la première :
Names default to here(1);
dir = Pick Directory();
files = FilesinDirectory(dir);
Si le script ci-dessus est exécuté et que nous accédons au dossier incriminé, la variable files n'est renseignée qu'avec les premiers fichiers avant que la longueur du chemin ne soit dépassée. Le problème semble donc lié à la façon dont JMP utilise l'API Windows pour l'accès aux fichiers.
Dans ce cas, la seule solution pourrait être l’option n°2.