If you are trying to run an application whose location is not determined, try searching for it recursively using a root directory.
Thus, the method GetFiles
will enumerate all executable files recursively in all folders of the directory root
:
References:
using System.IO;
Code:
string ProcurarOArquivo(string nome, string root) {
// nome -> nome do arquivo que esta sendo procurado
// root -> pasta raiz
string[] Arquivos = Directory.GetFiles(root, "*.exe", SearchOption.AllDirectories);
foreach(string a in Arquivos) {
string A = Path.GetFileNameWithoutExtension(a);
if(A.ToLower() == nome.ToLower()) return a;
// A -> arquivo com nome cortado
// a -> arquivo com nome e caminho completo
}
return "";
}
And to use, call the method ProcurarOArquivo()
as in the example below:
// no exemplo abaixo, PastaParaProcurar é o diretório onde
// o aplicativo está sendo executado. Você pode alterar por
// qualquer diretório literal ou variável.
string PastaParaProcurar = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
// enfim chama o arquivo executável.
Process.Start(ProcurarOArquivo(Programa, PastaParaProcurar));
Remarks:
- If the file is not found, a
String
empty.
- If you want to search the entire system, put
"C:\"
in PastaParaProcurar
, but the use of processor and memory will be arbitrarily large.
Ha... in C# or C Sharp
– Vitor Queiroz