Проверьте свободное место в Windows NT 5.1 и более новых платформах в NSIS

Я пытаюсь использовать этот скрипт:

http://nsis.sourceforge.net/CheckSpaceFree

Но в нем отсутствуют некоторые фундаментальные проверки и корректировки (комментарии) для случая (-ов), где:

1) Путь $ INSTDIR содержит каталог программных файлов, который защищен от доступа, поэтому, даже если вы запускаете установку с правами администратора, вы все равно получите 0 целочисленных значений, когда, например, ваш путь (абсолютный или относительный) попадает в каталог программных файлов.

Путь неудачного тестирования: C:\Program Files(x86)\BlaBlaBla\

Рабочий тестовый путь: C:\BlaBlaBla

2) Если я попытаюсь использовать относительный путь, содержащий один уровень выше (.. \ BlaBlaBla), И указать его на корень диска (C: \), тогда путь суммируется до C:\..\BlaBlaBla, в результате чего nsis просто выйдет из строя.

Есть ли какой-нибудь лучший способ изящно обойти эти ограничения?

Спасибо всем за любой вклад!


person HX_unbanned    schedule 06.09.2013    source источник


Ответы (1)


Вы пробовали DriveSpace из "полезных заголовков"? "включены в NSIS?"

person idleberg    schedule 06.09.2013
comment
Горе. Эмм, нет ... Большое спасибо. Выглядит многообещающе. :) Может быть, это также следует указать в вики NSIS этой функции CheckSpaceFree ...? :) Думаю, это поможет другим попасть в такую ​​же ситуацию ... - person HX_unbanned; 06.09.2013
comment
На самом деле я немного волнуюсь. Вики-страница последний раз изменялась 3 февраля 2010 года, в 09:31 ... но макрос DriveSpace кажется последним в версии v3.3, измененной в 2006 году. А код, созданный в 2006 году, работает лучше? - person HX_unbanned; 06.09.2013
comment
внимательно посмотрите на вики-подборку. ни изменения 2007, ни 2010 не были существенными, поэтому я бы датировал этот сценарий 2005 годом. В любом случае, я бы просто протестировал, работает ли макрос DriveSpace для вас. - person idleberg; 06.09.2013
comment
Нет, idleberg, это тоже не работает ... ему просто нужно реализовать автоматическое повышение на один уровень, пока не будет исключенный каталог, и свериться с ним ... - person HX_unbanned; 22.10.2013