Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: rigorvzla en 24 Diciembre 2017, 17:17 pm



Título: Cadena string (Direccion con espacios error)
Publicado por: rigorvzla en 24 Diciembre 2017, 17:17 pm
hola mi gente , les traigo una inquietud, como se puedo hacer que este codigo, tome la direccion tal cual completa, por que asi como la tengo toma el primer nombre y omite lo demas creando una carpeta llamada "Biblioteca" y no como realmente quiero sque se llame.

Código:
string pathDestination = @"C:\Biblioteca AIRH\Comprimidos\";
                ProcessStartInfo p = new ProcessStartInfo();               
                p.FileName = @"Procesos\7z.exe";
                p.Arguments = "a " + pathDestination + targetName+ " @listfile.lst" + " -t7z -mx=9";             
                p.WindowStyle = ProcessWindowStyle.Hidden;
                Process x = Process.Start(p);
...
...

la idea es que guarde el archivo en la direccion que se menciona arriba en cambio lo que hace es guardarlo en C:\ con el nombr biblioteca.7z que se debe hacer?


Título: Re: Cadena string (Direccion con espacios error)
Publicado por: Eleкtro en 24 Diciembre 2017, 18:07 pm
que se debe hacer?

Esto es una regla básica de toda la programación en general: al llamar a un programa command-line, los argumentos con espacios en blanco debes encerrarlos entre comillas dobles. ej. "C:\Ruta con espacios".

A todo esto, te he mostrado decenas de veces como evitar fallos tontos por el abuso del operador "+" en concatenaciones engorrosas de string, usando en su lugar la función string.Format(). Revísate los comentarios, por que te lo he mostrado varias veces y en varias preguntas distintas.

De hecho, te lo he estado mostrando desde el primer día de tus preguntas en el foro con mi primera respuesta:
  • https://foro.elhacker.net/net/7zip-t477235.0.html;msg2146756#msg2146756
Cita de: Elektro
Código
  1. Arguments = string.Format("a -t7z -mx=9 -mmt=on -ms=on \"{0}\" \"{1}\"", dstFilePath, srcFilePath),

Intenta tomar los ejemplos que se te dan.

Saludos!


Título: Re: Cadena string (Direccion con espacios error)
Publicado por: rigorvzla en 24 Diciembre 2017, 19:41 pm
creeme que tomo los ejemplos de todos los que me ayudan y mucho , pero es que no aplico los parametros como son , por lo visto por eso doy el codigo aqui a ver como otra persona lo hace, es posbile que lo eh realizao casi bien y no es casi, y creeme que volver atras ahorita me ayuda mucho a entender incluso eh usado respuestas tuyas previas que antes no entendia y que ahora ya las veo mejor, pero este me comio jaja, por otro lado ya consegui slucion al problema que tenia y te envie por privado era una tonteria que ni siquiera supe de donde salio, pero gracias de todos modos.

Aun tengo el problema de la direccion y viendo el ejemplo que tu me enviaste hace tiempo no encuentro como ejecutarlo osea en codigo esta bien pero no se como llamarlo para que cumpla la accion jeje me podrias decir como llamas a tu ejemplo?
Podrias aparte de eso colocar en el codigo que deje arriba la forma correcta para que es al comprimir lo deje ahi que no se que hacer ya.


Título: Re: Cadena string (Direccion con espacios error)
Publicado por: **Aincrad** en 26 Diciembre 2017, 17:53 pm
Prueba esto :

codigo 1 :

Código
  1. Dim targetName = "fileppppppp"
  2.        Dim pathDestination As String = "C:\Biblioteca AIRH\Comprimidos\"
  3.        Dim Prm As New Process
  4.        Dim Psis As New ProcessStartInfo("Procesos\7z.exe")
  5.        Psis.Arguments = ("a " & pathDestination & targetName & " @listfile.lst" & " -t7z -mx=9")
  6.        Prm.StartInfo = Psis
  7.        Prm.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
  8.        Prm.Start()


o este otro :


Código
  1. Dim srcFilePath = ""
  2.        Dim dstFilePath = "C:\Biblioteca AIRH\Comprimidos\"
  3.        Dim Prm As New Process
  4.        Dim Psis As New ProcessStartInfo("Procesos\7z.exe")
  5.        Psis.Arguments = ("a -t7z -mx=9 -mmt=on -ms=on"{0}\" \"{1}\"", dstFilePath, srcFilePath)
  6.        Prm.StartInfo = Psis
  7.        Prm.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
  8.        Prm.Start()

dime si funciono o no . 


Título: Re: Cadena string (Direccion con espacios error)
Publicado por: rigorvzla en 26 Diciembre 2017, 22:52 pm
de fabula, gracias mira una pregunta porfavor espero me expliques en el segundo codigo salen {1}{0} porque? que hacen para que sirven y su finalidad que aun no lo entiendo.

Gracias Aincrad (te viste SOA pillin ) jeje muy buena.


Título: Re: Cadena string (Direccion con espacios error)
Publicado por: Eleкtro en 28 Diciembre 2017, 15:15 pm
Te diría lo que ya te dijo el compañero @NEBIRE en aquél post de "Consulta 1"... pero no creo que valga la pena, tampoco quiero torturar a nadie más de la cuenta, si no quieres buscar y leer la documentación oficial cada vez que tengas este tipo de dudas para aprender, que le vamos a hacer.

Te explico, "{n}" es el índice de los argumentos especificados a la derecha del formato de texto.

Esto es una demostración y un simple juego de palabras... por llamarlo de alguna forma:
Código
  1. String.Format("Yo soy {1}, tú eres {0}, él es {2}, todos somos {0}, {1} y {2}.", "cero", "uno", "dos")

  • String.Format Method - MSDN (https://msdn.microsoft.com/en-us/library/system.string.format(v=vs.110).aspx)


Título: Re: Cadena string (Direccion con espacios error)
Publicado por: rigorvzla en 28 Diciembre 2017, 15:53 pm
si ya vi la consulta 1, bueno ya lo tengo mas claro elektro gracias por tu respuesta.