Lors de la gestion des erreurs qui surviennent lors de la création d'un fichier existant ou de l'utilisation d'un fichier qui n'existe pas, les OSError
s ont une sous-classe (FileExistsError
, FileNotFoundError
). Je ne pouvais pas trouver cette sous-classe pour le cas spécial lorsque le nom de fichier est trop long.Comment gérer OSError: [Errno 36] Nom de fichier trop long
Le message d'erreur est exacte:
OSError: [Errno 36] File name too long: 'filename'
Je voudrais attraper le OSError qui se produit lorsque le nom de fichier est trop long, mais seulement quand le nom du fichier est trop long. Je fais pas voulez attraper d'autres OSError
s qui pourraient se produire. Y a-t-il un moyen d'y parvenir? Je sais que je pourrais vérifier le nom de fichier sur une longueur mais la longueur maximale du nom de fichier varie trop en fonction de l'OS et du système de fichiers et je ne vois pas une solution "propre" de cette façon.
Possible duplication de [exception Python IOError lors de la création d'un fichier long] (https://stackoverflow.com/questions/4677234/python-ioerror-exception-when-creating-a-long-file) – NuclearPeon
@NuclearPeon: Non C'est spécifique à Windows et les réponses ne répondent pas à cette question. J'ai précisé cela dans la question. –
Vous pouvez essayer d'obtenir le chemin d'accès au nom de fichier maximal, bien qu'il n'y ait aucun moyen sûr de le faire. Cochez ce lien: https://code.activestate.com/lists/python-list/210662/ - vérifiez la longueur du nom de fichier et notifiez l'utilisateur s'il est trop long. Sinon, un essai/except est votre meilleur pari comme déjà énuméré. – NuclearPeon