Respuestas:
En cualquier caso, espero file.getParent()
(o file.getParentFile()
) que te dé lo que quieres.
Además, si usted quiere saber si el original File
hace existir y es un directorio, entonces exists()
y isDirectory()
es lo que está buscando.
Si haces algo como esto:
File file = new File("test.txt");
String parent = file.getParent();
parent
será nulo.
Entonces, para obtener el directorio de este archivo, puede hacer lo siguiente:
parent = file.getAbsoluteFile().getParent();
Archivo API File.getParent o File.getParentFile deberían devolverle el directorio del archivo.
Tu código debería ser como:
File file = new File("c:\\temp\\java\\testfile");
if(!file.exists()){
file = file.getParentFile();
}
Además, puede verificar que su archivo principal sea el directorio usando la API File.isDirectory
if(file.isDirectory()){
System.out.println("file is directory ");
}
File directory = new File("Enter any directory name or file name"); boolean isDirectory = directory.isDirectory(); if (isDirectory) { // It returns true if directory is a directory. System.out.println("the name you have entered is a directory : " + directory); //It returns the absolutepath of a directory. System.out.println("the path is " + directory.getAbsolutePath()); } else { // It returns false if directory is a file. System.out.println("the name you have entered is a file : " + directory); //It returns the absolute path of a file. System.out.println("the path is " + file.getParent()); }
code
Archivo final archivo = archivo nuevo ("C: /dev/changeofseasons.mid"); System.out.println ("el archivo existe?" + Archivo.exists ()); System.out.println ("directorio de archivo:" + file.getAbsolutePath ()); Ok, perdón por las sangrías poco convincentes, no creo que sea posible formatear el código en los comentarios. Aún así, su código obviamente no funciona.
File filePath=new File("your_file_path");
String dir="";
if (filePath.isDirectory())
{
dir=filePath.getAbsolutePath();
}
else
{
dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), "");
}
your_file_path = "C:\\testfiles\\temp\\testfile";
, no creo que dé lo que espera.