una txt ruta obtener modificar insertar guardar existente especifica escribir eliminar datos crear archivos archivo java path filepath

ruta - insertar/modificar/eliminar datos de un txt en java



¿Cómo obtener una ruta de archivo absoluta limpia en Java independientemente del sistema operativo? (3)

Intenta con esto:

import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; public class Main { public static void main(String[] args) throws IOException { Path path = Paths.get("myFile.txt"); Path absolutePath = path.toAbsolutePath(); System.out.println(absolutePath.toString()); } }

Aquí está el problema. Después de algunas concatenaciones puedo tener una cadena como esta

"C:/shared_resources/samples//import_packages//catalog.zip"

o incluso esto

"C:/shared_resources/samples/subfolder/..//import_packages//catalog.zip"

Quiero tener algún código que convierta esa cadena en una ruta con separadores uniformes.

La primera solución que me viene a la mente es usar el new File(srcPath).getCanonicalPath() , sin embargo, aquí está la parte difícil. Este método se basa en el sistema donde se invocan las pruebas. Sin embargo, necesito pasar la cadena a una máquina remota (nodo Selenium Grid con un navegador allí), y los sistemas aquí y allá son Linux y Windows respectivamente. Por lo tanto, tratar de new File("C:/shared_resources/samples//import_packages//catalog.zip").getCanonicalPath() produce algo como "/home/username/ourproject/C:/shared_resources/samples/import_packages/catalog.zip" . Y el uso de la sustitución de expresiones regulares no parece una buena solución también.

¿Hay una manera de podar el camino y hacer que los delimitadores sean uniformes (y posiblemente resuelvan los de '''') sin tratar de absolutizarlo implícitamente?



por ejemplo aquí está tu camino:

String jarName = "C:/shared_resources/samples//import_packages//catalog.zip" jarName.replaceAll("/", "//"); jarName.replaceAll("..", "/");