No sé ustedes, pero al menos yo esperaba que f1 fuera igual a f2 en el siguiente código, ¡pero aparentemente ese no es el caso! ¿Qué piensas sobre esto? Parece que tengo que escribir mi propio método igual para apoyarlo, ¿no?El archivo de Java es igual a
import java.io.*;
public class FileEquals
{
public static void main(String[] args)
{
File f1 = new File("./hello.txt");
File f2 = new File("hello.txt");
System.out.println("f1: " + f1.getName());
System.out.println("f2: " + f2.getName());
System.out.println("f1.equals(f2) returns " + f1.equals(f2));
System.out.println("f1.compareTo(f2) returns " + f1.compareTo(f2));
}
}
Lo mismo ocurre con la clase de ruta de Java 7. Pero existen métodos como Path.normalize() o Files.isSameFile() – Luciano
Puede proteger a todos los lectores de esta pregunta en algún momento mostrando el resultado real. Esperaba que 'igual' y' compareTo' tuvieran resultados contradictorios. Este no es el caso, 'equals' devuelve false y' compareTo' devuelve -58, lo que significa lexicográficamente "less than". @Luciano: Tenga en cuenta que 'Files.isSameFile' en este caso trataría de abrir los archivos ya que las rutas no son iguales y podrían fallar con' NoSuchFileException'. – bluenote10