Validar Ruta
Publicado por Franklin (179 intervenciones) el 28/03/2020 14:38:17
Chicos una consulta, con un pequeño sistema que he desarrollado y en él tengo la necesidad de Guardar Archivos y configuración de mis usuarios de acuerdo lo vayan necesitando / creando.
Originalmente no tengo una estructura de carpetas porque estas dependen del nombre del usuario, los clientes y el tipo de operación que realicen.
Por lo que, realice un método que de acuerdo a una ruta x, se encarga de verificar que exista cada una de las carpetas en su ramificación, en caso que una carpeta no la encuentre, este la crea pero si existe omite y continua.
Lo publico para ver si conocen un mejor método para realizar esta tarea, a mi me funciona pero dudo que sea la mejor forma de hacerlo.
Originalmente no tengo una estructura de carpetas porque estas dependen del nombre del usuario, los clientes y el tipo de operación que realicen.
Por lo que, realice un método que de acuerdo a una ruta x, se encarga de verificar que exista cada una de las carpetas en su ramificación, en caso que una carpeta no la encuentre, este la crea pero si existe omite y continua.
Lo publico para ver si conocen un mejor método para realizar esta tarea, a mi me funciona pero dudo que sea la mejor forma de hacerlo.
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
public void validarRuta(String ruta) {
String problema = "\\\\"; // Para saber que apunta de frente a una unidad de red
String separador = Pattern.quote("\\");//Separador a utilizar "\"
String[] s = ruta.split(separador);//Realizamos la separacion de la ruta de acuerdo al Separador
int h = 0;//Contador inicial del for, este queda así en caso de ser ruta normal, aumenta a 2 si la ruta es en Red
String temp = "";
temp = ruta.substring(0, 2);//Extramos los primeros valores de ruta
boolean llave = false; // false significa que es una ruta normal, sin apuntar de frente al servidor
if ((temp).equals(problema)) { // Preguntamos si el primer fragmento = problema, for inicia en 2 y llave=true (ruta de red)
h = 2;
llave = true;
}
temp = ""; // Limpiamos temp para ir construyendo la ruya y crear la carpeta en cada iteración
for (int i = h; i < s.length; i++) {
if (h != 0 && i == h) {
temp += "\\\\" + s[i] + "\\";
} else {
temp += s[i] + "\\";
}
//Llave inicia false, solo cambia a true cuando se detecta que la ruta es directo a unidad de red y posee "\\NameServidor\
if (llave == false && i >= 1) {//Si es ruta normal la posicion 0 es la letra de la unidad de red, y luego la carpeta por eso i>=1 "c:\"
crearCarpeta(temp);
} else if (i >= 3) { // en caso de ser una unidad de red, crea la carpeta a partir de la iteración 3, que es cuando empeiza la carpeta
crearCarpeta(temp);
}
}
}
Valora esta pregunta


0