Pregunta

En mi webapp hago el siguiente. Sé que es correcto porque he intentado 1) vertido start_sz a un archivo de texto 2) Do www-data 3) copiar / pegar la cadena de extracto y funcionó.

var start_sz = string.Format(@"bash -c 'ln ""{2}/{0}"" ""{2}/{1}""'", fn, newfn, System.IO.Directory.GetCurrentDirectory());
Process.Start(start_sz);

Me da la excepción abajo así que con el razonamiento anterior creo su fiesta diciendo que no se puede encontrar.

No se puede encontrar el archivo especificado

a System.Diagnostics.Process.Start_shell (System.Diagnostics.ProcessStartInfo startInfo, proceso System.Diagnostics.Process) [0x00000] en: 0

a System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, proceso System.Diagnostics.Process) [0x00000] en: 0

a System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x00000] en: 0

a System.Diagnostics.Process.Start (System.String filename) [0x00000] en: 0

a MySite.QueueManager.MakeLink (System.String fn) [0x00000] en: 0

a MySite.QueueManager.ImageQueue2 () [0x00000] en: 0

a MySite.QueueManager.ImageQueue () [0x00000] en: 0

Así que, ¿cómo puedo solucionar esto? Necesito básicamente crear un vínculo físico (suave está bien también) en tiempo de ejecución en mi aplicación asp.net.

pensé que tal vez necesita la ruta completa fiesta así que traté /bin/bash -c sin embargo, que no funciona bien.

¿Fue útil?

Solución

¿Por qué no llamar directamente ln? Sin bash?

Process.Start("ln", params);

También es posible que tenga que especificar la ruta completa:

Process.Start("/bin/ln", params);

De hecho, Process.Start("bash") funciona para mí, por lo tanto comprobar variable de entorno $PATH, etc.

Otros consejos

No, sabes que es correcto cuando se utiliza desde un shell . Esa cáscara tomará el camino en cuenta, a diferencia de Process.Start.

Sólo especifique la ruta completa al golpe, que es casi seguro que /bin/bash.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top