? Editar - Me siento como un idiota. Tenía la sensación de que la respuesta siguiente funcionaría pero no veía ningún resultado de Google similar a las respuestas a continuación. Entonces, cuando vi este código complejo, pensé que tenía que ser así.¿Cómo puedo abrir archivos en C#
He buscado y encontrado este Windows: List and Launch applications associated with an extension sin embargo, no contestó mi pregunta. Con ajustes a continuación, surgió el siguiente. Sin embargo, se queda atascado en los archivos de imagen. Txt archivos funcionan bien
Voy a actualizar este código pronto para dar cuenta de las rutas de las aplicaciones con espacios sin embargo, no entiendo por qué los archivos de imagen no se inician.
static void launchFile(string fn)
{
//majority was taken from
//https://stackoverflow.com/questions/24954/windows-list-and-launch-applications-associated-with-an-extension
const string extPathTemplate = @"HKEY_CLASSES_ROOT\{0}";
const string cmdPathTemplate = @"HKEY_CLASSES_ROOT\{0}\shell\open\command";
string ext = Path.GetExtension(fn);
var extPath = string.Format(extPathTemplate, ext);
var docName = Registry.GetValue(extPath, string.Empty, string.Empty) as string;
if (!string.IsNullOrEmpty(docName))
{
// 2. Find out which command is associated with our extension
var associatedCmdPath = string.Format(cmdPathTemplate, docName);
var associatedCmd = Registry.GetValue(associatedCmdPath, string.Empty, string.Empty) as string;
if (!string.IsNullOrEmpty(associatedCmd))
{
//Console.WriteLine("\"{0}\" command is associated with {1} extension", associatedCmd, ext);
var p = new Process();
p.StartInfo.FileName = associatedCmd.Split(' ')[0];
string s2 = associatedCmd.Substring(p.StartInfo.FileName.Length + 1);
s2 = s2.Replace("%1", string.Format("\"{0}\"", fn));
p.StartInfo.Arguments = s2;//string.Format("\"{0}\"", fn);
p.Start();
}
}
}
¿solo desea iniciar archivos en Windows? –
¿Qué sucede con esos archivos de imagen si intenta escribir lo que sea que la instrucción de depuración resultante sea para ellos solo en la línea de comando? –