fichier.File () code> et fichier.isdirectory () code> renvoie false non seulement lorsque le fichier n'est pas le type spécifié, mais De plus, lorsque le fichier code> n'existe pas sur le système de fichiers. Comment puis-je déterminer si le fichier code> représente un fichier ou un répertoire quand il n'existe pas? P>
5 Réponses :
Fichier de test.exists () Premier.
pseudo-code (parce que je ne fais pas Java :)): p>
Mais je veux savoir s'il s'agit d'un fichier ou d'un répertoire si ou pas i> il existe ...
Si cela n'existe pas, ce n'est ni poisson ni poule - ce n'est pas rien.
Ebgreen, je pense que vous venez de gagner le prix pour une interaction smiley / parenthèses la plus compliquée jamais! : o)
Emoticon Palindrome pour la victoire. :)
Notation hongroise, Yuck :) Oh et .isdirectory () renvoie true uniquement si .exists () renvoie true et le fichier est vraiment un répertoire.
@Esko: Non, pas hongrois, mais l'avortement de MS de celui-ci découlant de mal comprendre les principes adoptés par l'inventeur. Mais oui, yuck!
En général, un chemin spécifique peut représenter à la fois un répertoire et un fichier. Jusqu'à ce qu'il y ait soit un répertoire ou un fichier créé sur ce chemin, la notion de celui-ci étant pour l'un ou l'autre n'est pas valide. p>
Il y a cependant un cas particulier. Si le chemin se termine par un séparateur de trajectoire ('/' sur des systèmes de type UNIX, '\' sous Windows et peut-être quelque chose de complètement différent sur d'autres systèmes), puis au moins sur des systèmes de type UNIX, le chemin ne peut pas être celui d'un fichier. Je ne sais pas si cela est valide pour tous les systèmes cependant. P>
vous ne pouvez pas p>
Le fichier doit exister en premier afin de savoir ce qu'il Le Javadoc dit dans les deux cas: p>
vrai si et seulement si le fichier désigné par ce chemin d'accès abstrait Un fichier qui n'existe pas encore peut être à la fois potentiellement. P>
Je pense que la réponse est que vous ne pouvez pas. Une partie de la raison est que cela n'existe tout simplement pas. Le reste de la raison concerne l'indépendance du système de Java. Selon le système d'exploitation utilisé, il n'y a pas vraiment une différence entre un fichier et un répertoire. À UNIX Par exemple, tout est un fichier. Tuyaux, répertoires, liens - ils sont tous des fichiers techniquement. P>
tel qu'il se tient, le nom de trajectoire abstrait référencé par l'objet de fichier pourrait être soit un - jusqu'à ce que vous exécutez soit mkdir () code> ou créeneenwfile () code> dessus. < / p>
Votre question est comme demander ceci:
"Comment puis-je dire si cette boîte contient un chat ou un chien quand il est vide?" P> BlockQuote>
sur la face de celui-ci, cette question est absurde et la vôtre est donc. Si un fichier est un chemin fait référence à un objet système de fichiers inexistant (c'est-à-dire à «rien»), demandez si ce «rien» >> est
Spécifiquement, à tout instant dans le temps, toutes les prédicats suivants contiennent: P>
file.exists() == false IMPLIES file.isDirectory() == false AND file.isFile() == false file.isDirectory() == true OR file.isFile() == true IMPLIES file.exists() == true file.isDirectory() == true IMPLIES file.isFile() == false file.isFile() == true IMPLIES file.isDirectory() == false