elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  Windows (Moderador: Randomize)
| | |-+  Solucionar y evitar el error de "Ruta demasiado larga" en Windows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 4 5 Ir Abajo Respuesta Imprimir
Autor Tema: Solucionar y evitar el error de "Ruta demasiado larga" en Windows  (Leído 129,689 veces)
rconde79

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #10 en: 2 Marzo 2011, 07:57 am »

Oye que el que ha abierto el tema tiene tambien un poco de mérito no? jejeje

No, ahora en serio, muchas gracias. A mi por lo menos me será de grandísima utilidad, y más si como dices, lo pasas en un exe para utilizar en windows, ya que yo no tengo el Ruby. Admito que ni lo conozco.

Sólo una pincelada. Creí leer ayer que sólo se podía pasar a las unidades C: y F: Si pudieras modificarlo para pasarlo a cualquier carpeta ubicada en cualquier unidad ya sería la perfección (no sé si será mucho pedir).

Gracias de nuevo!


En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #11 en: 2 Marzo 2011, 09:05 am »

Oye y el programa trabaja solo en un directorio, o tambien en las sub carpetas? xD por ejemplo para mirar en TODO el discoduro, se puede?

(es una nueva idea que añado a la sugerencia de modificaciones de rconde XD)


En línea

No he vuelto, solo estoy de paso.
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #12 en: 2 Marzo 2011, 14:32 pm »

El programa trabaja como mencioné recursivamente, lo que quiere decir que trabaja en subcarpetas también. El programa funciona para cualquier carpeta si le das la ruta de esa carpeta.

Lo único esque en las últimas pruebas que he hecho he tenido algunos problemas gracias al maldito Windows que no sabe como arreglarselas en algunas situaciones con esos paths, y menos cuando se hace recursivo el cambio.... voy a arreglar esos problemas cuanto antes.

Lo ideal en estos momentos para que no sufras ningún percance es... uhmm... imagino que usar un Live CD de alguna distro muy pequeña, montar el disco y analiza.

Voy a resolver los problemas que mencioné antes y lo paso.


Saludos
« Última modificación: 2 Marzo 2011, 14:36 pm por gankutsuo » En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #13 en: 2 Marzo 2011, 15:14 pm »

Listo, Ya está hecho, ahora permíteme explicar el funcionamiento del Script:

Lo primero es el exe: http://www.mediafire.com/?957q8lr354arne0

Cuando lo tengas lo más conveniente es que lo dejes en la Raiz del Disco local C: (o el que sea que uses por defecto). Despues abres una consola CMD y escribes lo siguiente:
Código
  1. C:
y luego
Código
  1. dir.exe
Cuando lo hagas lo primero que verás es un mensaje como el siguiente:
Código
  1. Escriba el path de un directorio:
En donde puedes escribir el path de cualquier directorio.... cualquiera no importa cual sea o en que dico se encuenre la comprobación será recursiva lo que quiere decir que comprobará todos los niveles del path suministrado incluyendo todos los archivos y subdirectorios que se encuentren.. Si en algún momento se encuentra un ruta mayor a 256 caracteres te saldrá el siguiente mensaje:
Código
  1. ||ERROR: Path mayor a 255 caracteres||
  2. Desea renombrar el archivo (s/n):
en donde solo puedes introducir 's' o 'n' si introduces 'n' o cualquier otro caracter el programa continuara la comprobación sin cambiar nada, si de lo contrario colocas 's' aparecerá el siguiente mensaje:
Código
  1. Escriba el nuevo nombre para el archivo:
En donde tienes que escribir el nuevo nombre para el archivo. NOTA: El programa NO hace doble comprobación, así que asegurate que el nuevo nombre sea más corto. Si el nombre continua siendo más grande a 256 caracteres Windows no dejará cambiar el nombre (maldito Windows!!), Windows le pasara un error al programa y el programa terminara la ejecución.
Despues de que escribas el nombre y des 'Enter' el programa continuará con la ejecución.
Por cada path bien formado que se encuentre el programa te lo dirá con un:
Código
  1. ... | OK |

Y bueno creo que eso es todo lo que hay que decir si a alguien le interesa el Script con los pequeños cambios realizados aquí está:
Código
  1. require 'find'
  2.  
  3. def dirComp(dir)
  4. Dir.chdir(dir)
  5. puts dir
  6. Find.find(dir) do |path|
  7. if(path.to_s.length > 256)
  8. print "#{path} ... ||ERROR: Path mayor a 255 caracteres||\n"
  9. print "Desea renombrar el archivo (s/n): "
  10. op = gets.chomp.to_s
  11. if (op == 's')
  12. print "Escribe el nuevo nombre para el archivo: "
  13. name = gets.chomp.to_s
  14. oldName = cutPath(path)
  15. newName = oldName + name
  16. File.rename(path.gsub("/", "\\"), newName.gsub("/", "\\"))
  17. else next
  18. end
  19. else puts "#{path} ... |OK|"
  20. end
  21. end
  22. end
  23.  
  24. def cutPath(path)
  25. index = -1
  26. tmpVar = 0
  27. while (tmpVar != 1) do
  28. if (path[index].chr == "/" or path[index].chr == "\\" ) then
  29. finalIndex = path.length - index.abs
  30. oldName = path[0, (finalIndex + 1)]
  31. tmpVar = 1
  32. else
  33. index = index - 1
  34. end
  35. end
  36. return oldName
  37. end
  38.  
  39. print "Escriba el path de un directorio: "
  40. path = gets.chomp.to_s
  41. dirComp(path)

Ahora hay que tener en cuenta que este último ya no funciona sobre plataformas *nix gracias a Windows -.- pero siempre se puede usar el anterior (aunque como dije no tiene mucho sentido.)
Espero sea de Utilidad

POR ULTIMO: Si encuentran algún error (diferente a lo que mencione más arriba claro está) haganmelo saber para corregirlo.

Saludos.
« Última modificación: 2 Marzo 2011, 15:28 pm por gankutsuo » En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #14 en: 2 Marzo 2011, 15:23 pm »

Que gran utilidad! que grande eres xD deberias subirlo por ahí, a algunas paginas de renombre para que lo tengan más usuarios, o vender el programa xD.
En línea

No he vuelto, solo estoy de paso.
rconde79

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #15 en: 2 Marzo 2011, 16:46 pm »

Buenísimo. Lo he utilizado y funciona a la perfección.

Sí que se podría difundir el programa. yo he buscado por internet y no hay ninguna solución a este fallo de windows.

Enhorabuena otra vez!

PD: manda wevos que hayamos llegado a la luna hace medio siglo y todavía no se puedan escribir rutas de más de 256 caracteres..
En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #16 en: 2 Marzo 2011, 16:51 pm »

Buenísimo. Lo he utilizado y funciona a la perfección.

Sí que se podría difundir el programa. yo he buscado por internet y no hay ninguna solución a este fallo de windows.

Enhorabuena otra vez!

PD: manda wevos que hayamos llegado a la luna hace medio siglo y todavía no se puedan escribir rutas de más de 256 caracteres..

Jajajajajajajajaj Muy cierto!!
Bien, me alegra que haya funcionado de maravilla! Por fortuna este foro es relevante y de seguro alguien que busque en Google llegará a este hilo.
Y bueno pues ya saven yo sigo la folosofía libre, así que pueden copiarlo, modificarlo, regalarlo prestarlo.... si alguien quiere decir que lo hizo de cero sin darme crédito la verdad no me importa....
En línea

rconde79

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #17 en: 2 Marzo 2011, 16:52 pm »

Por cierto, otra sugerencia (por favor no me mates)

¿habría alguna forma de que el programa lanzara un archivo de texto con las rutas que ha encontrado erróneas, sin que se parara a preguntar si se quiere renombrar el archivo?

Es para pasarlo a una carpeta grande, olvidarte durante un rato, y después echar un vistazo al documento de texto.

Sólo es una sugerencia que se me ocurre. Repito que me parece fantástico el programa como está.

Saludos!
En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #18 en: 2 Marzo 2011, 16:54 pm »

Por cierto, otra sugerencia (por favor no me mates)

¿habría alguna forma de que el programa lanzara un archivo de texto con las rutas que ha encontrado erróneas, sin que se parara a preguntar si se quiere renombrar el archivo?

Es para pasarlo a una carpeta grande, olvidarte durante un rato, y después echar un vistazo al documento de texto.

Sólo es una sugerencia que se me ocurre. Repito que me parece fantástico el programa como está.

Saludos!
Claro vamos que no hay bronca! además me ofrecí desde el principio para esto así que no importa, y claro, además es una modificación muy simple... esperame un rato a ver que sale.
Saludos
En línea

SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: Solucionar y evitar el error de "Ruta demasiado larga" en Windows
« Respuesta #19 en: 2 Marzo 2011, 16:56 pm »

no se si será posible, pero si gankutsuo le añade algún parametro, mira, algo asi quedaría, no?

Código:
@echo off
dir.exe c:\ > lista.txt & type lista.txt & del /q lista.txt
pause >nul
exit

animo!
« Última modificación: 2 Marzo 2011, 17:01 pm por pitoloko » En línea

No he vuelto, solo estoy de paso.
Páginas: 1 [2] 3 4 5 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines