Как получить имя файла.EXE [дубликат]

Как Greg указал , перестановка Фишера-Йетса будет лучшим подходом. Вот реализация алгоритма из Википедии:

public static void shuffle (int[] array)
{
   Random rng = new Random();   // i.e., java.util.Random.
   int n = array.length;        // The number of items left to shuffle (loop invariant).
   while (n > 1)
   {
      int k = rng.nextInt(n);  // 0 <= k < n.
      n--;                     // n is now the last pertinent index;
      int temp = array[n];     // swap array[n] with array[k] (does nothing if k == n).
      array[n] = array[k];
      array[k] = temp;
   }
}

реализация выше полагается на Random.nextInt (интервал), обеспечивающий достаточно случайные и несмещенные результаты

8
задан Community 23 May 2017 в 11:52
поделиться

4 ответа

Есть несколько способов:

Application.ExecutablePath

или

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

или

System.Reflection.Assembly.GetExecutingAssembly().Location
17
ответ дан 5 December 2019 в 07:35
поделиться

На этот вопрос ответили до .

Из любого места вашего кода вы можете находиться в сборке, загруженной исходным EXE. У вас также может не быть ссылки на синглтон Application, поэтому лучше всего использовать класс Assembly.

Самый безопасный способ - Assembly.GetEntryAssembly () . Местоположение получает местоположение в файловой системе, где находится сборка. В настоящее время. Если это теневое копирование , то это местоположение теневой копии. Если он развертывается в один клик, то это безумный путь к файлу в области песочницы .

Исходное расположение сборки будет в Assembly.GetEntryAssembly (). Codebase

4
ответ дан 5 December 2019 в 07:35
поделиться

Вы должны найти его в свойстве: Application.ExecutablePath

0
ответ дан 5 December 2019 в 07:35
поделиться

Process.GetCurrentProcess (). MainModule

edit

Другой способ - использовать Environment.GetCommandLineArgs () [0], но я предпочитаю использовать Процесс.

1
ответ дан 5 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: