Как я программно получаю фактический путь к папке “Program Files”? [дубликат]

Я игнорировал файл в своем репо, и когда я сделал git pull upstream master, я получил следующую ошибку:

ошибка: Ваши локальные изменения в следующих файлах будут перезаписаны слиянием: myfile. js Пожалуйста, передайте изменения или спрячьте их, прежде чем вы сможете объединить их. Отмена

Чтобы решить эту проблему, я сделал следующее

git update-index --no-assume-unchanged myfile.js

Затем я сделал git status и получил это сообщение

На мастере филиала Ваша ветка отстает от 'origin / master' на 4 коммита и может быть быстро переадресован. (используйте «git pull» для обновления вашей локальной ветки)

Изменения, не подготовленные для фиксации: (используйте «git add ...» для обновления того, что будет зафиксировано) (используйте «git checkout - ...» «отменить изменения в рабочем каталоге)

изменено: myfile.js

изменения не добавлены в коммит (используйте« git add »и / или« git commit -a »)

Затем я сделал git checkout myfile.js, а затем git pull upstream master. На этот раз операция git pull прошла успешно.

21
задан Community 23 May 2017 в 12:10
поделиться

5 ответов

.NET provides an enumeration of 'special folders' for Program Files, My Documents, etc.

The code to convert from the enumeration to the actual path looks like this:

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)

http://msdn.microsoft.com/en-us/library/14tx8hby.aspx

35
ответ дан 29 November 2019 в 06:22
поделиться

You would use GetFolderPath in the Environment class.

try {
    Environment.GetFolderPath( Environment.SpecialFolder.ProgramFiles )
catch( ArgumentException ex ) {
    Console.Out.WriteLine( ex.StackTrace );
}
5
ответ дан 29 November 2019 в 06:22
поделиться

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) is probably the best solution, but another possible variant is evaluating the value of the ProgramFiles environment variable. For this, you can use the GetEnvironmentVariable or ExpandEnvironmentVariables method of the Environment class:

Environment.GetEnvironmentVariable("ProgramFiles")

Environment.ExpandEnvironmentVariables("%ProgramFiles%")
2
ответ дан 29 November 2019 в 06:22
поделиться

You can access the environment variable called: %PROGRAMFILES%

i.e:

%PROGRAMFILES%\Maxis\SimCity

in C#:

System.Environment.SpecialFolder.ProgramFiles
1
ответ дан 29 November 2019 в 06:22
поделиться

Просто чтобы добавить к этому.

Если вы работаете в 32-битном режиме (даже на 64-битном), то SpecialFolder.ProgramFiles и %PROGRAMFILES% вернут ..Program Files (x86).

Если Вам специально нужна одна и/или другая, то необходимо проверить следующим образом:

32 битовая система:

SpecialFolder.ProgramFiles = ..Program Files\

64 битовая система в битовом процессе 32: SpecialFolder.ProgramFiles = ..Program Files (x86)\. Environment.GetEnvironmentVariable("ProgramW6432") = ..Program Files\

64 битовая система в битовом процессе 64: SpecialFolder.ProgramFiles = ..Program Files\. Environment.GetEnvironmentVariable("PROGRAMFILES(X86)") = ..Program Files (x86)\

Очевидно, что это зависит от вашей локали и т.д....

28
ответ дан 29 November 2019 в 06:22
поделиться