Je dispose d'un fichier x
qui apparaît dans un répertoire, comme le prouve list.files
Pourquoi file.exists retourne-t-il FALSE alors qu'il est dans list.files?
x <- "./data-raw/paths/calculate-route-by-FROM-TO/2017-05-2075--FROM-Flinders-Street-Railway-Station--Melbourne-Victoria-3004--VIC--TO-Melbourne-Sports-Aquatic-Centre--30-Aughtie-Dr--Melbourne-VIC-3206--VIC-csv"
x %in% list.files("./data-raw/paths", recursive = TRUE, full.names = TRUE)
# [1] TRUE
file.exists(x)
# [1] FALSE
Notez que x
manque une extension, mais je ne pouvais pas trouver une telle mise en garde à ?file.exists
:
file.exists
retours un vecteur logique indiquant si les fichiers nommés par son argument existent. (Ici 'existe' est dans le sens de l'appelstat
du système: un fichier ne sera signalé comme existant que si vous avez les permissions nécessaires à stat.Existence peut également être vérifié parfile.access
, qui pourrait utiliser des autorisations différentes et ainsi obtenir un autre Notez que l'existence d'un fichier n'implique pas qu'il est lisible: pour cela utiliserfile.access
.) Ce qui constitue un 'fichier' dépend du système, mais doit inclure des répertoires. (Toutefois, les noms de répertoires ne doivent pas inclure de barre oblique inverse ou barre oblique à la fin de Windows.) Notez que si le fichier est un lien symbolique sur Unix, le résultat indique si le lien pointe vers un fichier réel, pas seulement si le lien existe . Enfin, notez qu'il existe une fonction différente qui vérifie l'existence des objets R.
La seule indication de la documentation était que les restrictions d'accès peuvent causer FALSE
, et même file.access(x)
est -1
mais je semblent avoir accès à ce fichier (ainsi que d'autres fichiers très similaires qui ne sont pas aussi touchés).