Java - Problema con archivos que no existan en el directorio

 
Vista:

Problema con archivos que no existan en el directorio

Publicado por Ru (35 intervenciones) el 23/10/2020 01:35:57
Hola buenas tardes, estoy haciendo un programa en java con archivos, directorios, tengo que agregar el nombre de los archivos por teclado y validar que ese mismo nombre no exista en el directorio, para eso cree un array de archivos, donde guardo los nombres de los archivos y su correspondiente ubicacion.
El problema es que la validacion tira un resultado incorrecto cuando pongo dos archivos con el mismo nombre, no me tendria que dejar agregar el mismo nombre de archivo al array archi y sin embargo lo agrega igual, si alguien me podria ayudar se lo agradeceria.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public class Archivo {
 
   String nombre;
   int longitud;
   String ubicacion;
   int bloqueInicial;
   int bloqueFinal;
 
 
   public void setNombre(String nombre) {
      this.nombre=nombre;
   }
 
   public void setLongitud(int l) {
      this.longitud=l;
   }
 
   public void setUbicacion(String ubicacion) {
      this.ubicacion=ubicacion;
   }
 
   public void setBloqueInicial(int bloque) {
      this.bloqueInicial=bloque;
   }
 
   public void setBloqueFinal(int bloque) {
      this.bloqueFinal=bloque;
   }
 
   public String getNombre() {
      return this.nombre;
   }
 
   public int getLongitud() {
   return this.longitud;
   }
 
    public String getUbicacion() {
    return this.ubicacion;
    }
 
    public int getBloqueInicial() {
       return this.bloqueInicial;
    }
 
    public int getBloqueFinal() {
       return this.bloqueFinal;
    }
-----------------------------------------------------------------------------------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
 
public class Directorio {
  static File directorio;
  static File archivo;
  int bloqueS=0;
  static int iArchivo=0;
 
 static ArrayList<Archivo> archi = new ArrayList<>();
private Scanner nombre;
 
 
public void crearDirectorio () {
 
     directorio = new File("directorio2");
   directorio.mkdir();
}
 
 
public boolean verificar (String nombre) {
boolean t=true;
 
   for (int i=0; i<archi.size();i++) {
      if (archi.get(i).getNombre()==nombre) {
         t=false;
         System.out.println("es igual");
      }
   }
   return t;
}
 
 
public void agregarArchivo () {   //agrega el archivo al directorio y al array
   boolean c;
       for (int i=0; i<3;i++) {
      System.out.println("Ingrese nombre de archivo");
      Scanner nom= new Scanner(System.in);
      String nombre= nom.nextLine();
      c=verificar(nombre);
      if (c!=false) {
       try {
      archivo = new File(directorio,nombre);
      archivo.createNewFile();
 
      Archivo aux = new Archivo();
     aux.setNombre(archivo.getName());
     aux.setUbicacion(archivo.getAbsolutePath());
     aux.setLongitud((int)archivo.length());
     archi.add(aux);
 
   } catch (IOException e) {
      e.printStackTrace();
   }
 
   } else
      System.out.println("El nombre con ese archivo ya existe");
 
   }
}
 
public static void mostrarArchivos() {
   System.out.println("                           FAT                             ");
   for (int i=0; i<archi.size(); i++) {
    System.out.println(" ");
   System.out.println("**********************************************************************");
   System.out.println("     Numero de bloque: "+i);
   //System.out.println("     Bloque sig: "+archi.get(i).bloqueSig);
   System.out.println("     Longitud: "+archi.get(i).longitud);
   System.out.println("     Nombre de archivo:   "+archi.get(i).getNombre());
   //System.out.println("     Estado bloque: "+archi.get(i).getEstado());
   System.out.println("     Ubicacion en disco: "+archi.get(i).getUbicacion());
    System.out.println("***********************************************************************");
   System.out.println(" ");
 
 
 
   }
   }
 
public static void main(String[] args) {
   Directorio d = new Directorio();
   d.crearDirectorio();
   d.agregarArchivo();
   d.mostrarArchivos();
    }
 
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problema con archivos que no existan en el directorio

Publicado por Rodrigo (623 intervenciones) el 23/10/2020 05:22:40
Los strings se tienes que comparar usando equals, no usando ==.

asi:
1
string1.equals(string2)

no asi:
1
string1 == string2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar