J'essaie de créer un programme simple qui contienne la fonction de parcourir le système de fichiers local.getCanonicalFile et getAbsoluteFile retournent le répertoire (projet) actuel au lieu de celui attendu
Cependant, j'ai rencontré un problème lorsque l'adresse est entrée directement.
public void setWorkingDirectory(File newDir)
{
try
{
//try to eliminate redundancy
this.workingDir = newDir.getCanonicalFile();
}
catch (IOException e)
{
this.workingDir = newDir;
}
}
J'ai besoin le chemin absolu pour afficher à l'écran. Donc, j'utilise getCanonicalFile()
. Tout fonctionne bien, sauf que lorsque je saisis "D:", le repertoire de travail sera défini dans le répertoire du projet courant dans Eclipse (je pense qu'il devrait être le répertoire courant lorsqu'il est exécuté indépendamment, "D: \ EclipseWorkspace \ workspace \ FTPClient") mais le fichier newDir contient exactement le même chemin ("D:") (je l'ai tracé).
Si je saisis "C:" ou "D: \", alors tout va bien. Je n'ai trouvé aucune information à ce sujet sur Internet. Quelqu'un pourrait-il me dire ce qui se passe ici et comment résoudre le problème?
Merci d'avance.
EDIT: Je travaille sur Windows XP SP3 avec Java 6 si cela est important.
Bien que vous travailliez avec Windows, remplacez toutes vos barres obliques inverses par des barres obliques. "\" 'Peut s'échapper d'un caractère après et vous ne le souhaitez pas. – darioo
Merci pour votre commentaire. C'est une bonne idée. Mais je pense que dans mon cas ce n'est pas nécessaire puisque le chemin n'est pas codé en dur. – LLS
J'ai téléchargé une réponse qui explique ce que Kris a dit. –