Как сделать папку program files x86

Обновлено: 07.07.2024

Вместо того, чтобы ответить на ваш вопрос, я бы спросил - как бы вы справились с \ программными файлами \ общими файлами?

@Synetech У меня даже были программы, устанавливаемые в (x86) только для того, чтобы иметь двоичные файлы x64 .. Иногда это ужасно.

Реальный беспорядок в 64/32-битной дифференциации состоит в том, что / Windows / System32 содержит 64-битный контент, в то время как / Windows / SysWOW64 содержит 32-битный материал…

Краткий ответ: для обеспечения того, чтобы унаследованные 32-разрядные приложения продолжали работать так же, как раньше, без навязывания некрасивых правил для 64-разрядных приложений, которые создавали бы постоянный беспорядок.

Это не обязательно. Это просто удобнее, чем другие возможные решения, такие как требование, чтобы каждое приложение создавало свой собственный способ отделения 32-разрядных библиотек DLL и исполняемых файлов от 64-разрядных библиотек DLL и исполняемых файлов.

IIRC Win3.1 не имел каталога программных файлов (или большинство приложений игнорировали его); в результате не было бы никаких старых приложений win16, ищущих вещи в программных файлах для начала. Вместо этого общие библиотеки IIRC часто добавлялись где-то в самой папке Windows. Win32, имеющий windows \ system и windows \ system32, является артефактом этого.

@Jarrod: На самом деле, как знает каждый разработчик, Microsoft слишком высоко ценит обратную совместимость . Буквально у каждого API есть свои методы, которые они отказываются удалять, и часто серьезные ошибки, которые они отказываются исправлять, потому что они боятся ломать старые программы, написанные для этого API. То же самое относится и к большинству API, но не ближе к существующим Microsoft.

Это позволяет вам устанавливать как 32-битную, так и 64-битную версию приложения без перезаписи.

Посмотрев этот ответ и цепочку комментариев на следующий день, я осознал возможный серьезный недосмотр в своем ответе. Я ложно предположил опыт программирования, и когда я говорил о вас в своих комментариях, я имел в виду не пользователя, а программиста.

Я не работаю на Microsoft, и я понятия не имею, какова реальная причина этих папок, но я думаю, что причина наличия этих папок настолько очевидна, что у меня нет проблем с этим спорить.

Итак, давайте разберемся!

Давайте договоримся о чем-то. Папки отличные! Они нам не нужны, у нас достаточно возможных имен файлов, чтобы поместить каждый отдельный файл в корень жесткого диска, так зачем вообще иметь папки?

Ну, они помогают нам заказать наши вещи. И заказывать вещи отлично. Это помогает нам легче обрабатывать вещи. Это особенно полезно при работе с машиной, которая требует структуры.

Разделение данных и логики это здорово!

Парадигма, часто встречающаяся в программировании, заключается в отделении данных от логики. Вы хотите , чтобы одна часть , которая знает , как сделать что - то и вы хотите другую часть , которую вы можете сделать что - то с .

Это также находится в файловой системе.

У нас есть папки для приложения (логика) и папки для наших ценностей (данных):

логика

  • %WINDIR%
  • %PROGRAMFILES%
  • %PROGRAMFILES(x86)%

Данные

Установщики не волшебны

Сегодня мы часто используем небольшие программы для установки наших больших программ. Мы называем эти маленькие программы- установщики .

Установщики не волшебство. Они должны быть написаны программистами и являются приложениями (с возможными ошибками), как и любое другое приложение. Итак, давайте посмотрим на ситуацию, с которой воображаемому программисту придется столкнуться при наличии и отсутствии текущей системы:

1 папка Program Files

Разработчик поддерживает 2 установщика. Один для 32-битной и один для 64-битной версии его приложения. 32-битный установщик запишет, C:\Program Files\App\ а 64-битный установщик запишет C:\Program Files\App\sixtyfour\ .

2 папки с программными файлами

Разработчик поддерживает 1 установщик. Программа установки всегда будет писать %PROGRAMFILES% и зависит от операционной системы , чтобы расширить путь соответствующим образом (вы на самом деле не использовать переменные среды для этих случаев вы будете использовать SHGetKnownFolderPath с , FOLDERID_ProgramFiles чтобы получить правильный путь).
Все находит свое место автоматически, и шаблон идентичен для каждого приложения, которое вы устанавливаете .

Последовательность имеет смысл

Когда вы чему-то учитесь , это обычно означает, что наблюдаемое поведение было последовательным. Иначе действительно нечего наблюдать и учиться.

То же самое верно для нашей маленькой файловой системы. Имеет смысл всегда помещать один и тот же материал в одни и те же папки. Таким образом, мы будем знать, где искать, когда мы что-то ищем.

Система различения приложений 32/64 способствует достижению этой цели. Приложения разделены на 2 местоположения, чтобы избежать конфликтов в именах, поведении двоичной загрузки и безопасности (в некоторой степени).

Я до сих пор не понимаю. Это кажется бесполезным

Вы никогда не должны забывать одну вещь. Люди невероятно глупы. Это включает в себя пользователей, супер пользователей и особенно программистов.

Вот почему нам нужны такие вещи, как перенаправление файловой системы, чтобы сделать наши системы работоспособными.

Программисты просто зайдут туда и попытаются загрузить C:\Windows\system32\awesome.dll и не заботятся о том, работают ли они в 32- или 64-битной системе. Они будут пытаться загрузить 64-битную DLL и просто потерпеть крах. Некоторые программисты хотят использовать Office DLL, нет проблем, они знают, где его найти! C:\Program Files\Microsoft\Office\14.0\wizards.dll . и еще один сбой!

Все эти запросы 32-битным приложением перенаправляются в 32-битные аналоги, чтобы избежать сбоев приложения.

Нам нужны фиксированные имена папок для построения такой системы. Если нет структуры папок для поддержки этого перенаправления, то как вы собираетесь заставить это работать?

Хорошо, теперь я понял. Но почему бы не использовать C:\Program Files\x86\ тогда?

Теперь мы становимся философскими .

Что бы пошло не так, если бы я как-то избежал механизма перенаправления и заставил все установить на реал C:\Program Files\ ?

Скорее всего ничего (если другие приложения не зависят от фиксированного местоположения этого приложения).

Механизм WOW64 подключается CreateProcess и выполняет более сложные (более сложные, чем проверка имени папки исполняемого файла) проверки исполняемого образа, чтобы определить, является ли он 32- или 64-разрядным.

Да, но я имею в виду, как, ВСЕ приложения!

  • Что произойдет , если я ставлю как дизельное топливо и газ в мою машину?
  • Что произойдет, если я попытаюсь использовать как переменный, так и постоянный ток на одной линии?
  • Что произойдет , если я держу как мой кот и мою рыбу в том же аквариуме?

Это первоначальная причина, хотя? Не могу ли я просто установить приложение на C:\Program Files\App32 и C:\Program Files\App64 ?

@StephenJennings: Но это потребует от вас ручного принятия решения. Теперь он работает так, что этот процесс происходит автоматически, поскольку Windows знает, какую папку предоставить при вызове приложения SHGetSpecialFolderPath для определения места установки.

@Synetech: Зачем устанавливать в %PROGRAMFILES% первую очередь? Почему бы не поместить 32-разрядную версию на рабочий стол пользователя, а 64-разрядную - в корзину? То, что это можно сделать, не означает, что это хорошая идея. Извините, я не понимаю ваших рассуждений.

@Synetech: Да, вы дали очень хороший пример того, как это можно сделать. Другой вполне хороший пример того , как это можно было бы сделать так , как это будет на самом деле делается прямо сейчас. Просто записать файл в% PROGRAMFILES% и быть уверенным, что он окажется в нужной папке - это одно. Проверяя для себя, какая папка правильная, другая. Если вы на самом деле не видите преимущества прежнего подхода, я не смогу вас убедить. Вопрос был в том, почему есть 2 папки. Я думаю, что мой ответ вполне разумен в этом отношении.

@OliverSalzburg, нет совсем. Вопрос заключается в том, почему две папки требуется , а не почему это . На самом деле он даже обдумал это: зачем это вообще нужно? Вы не объяснили, почему это необходимо, и приведенный мною пример (и даже ваш собственный саркастический пример) просто показывают, что это не обязательно должно быть так, как есть.

Подводя итог, нет, это не обязательно ; они могли бы использовать одну папку, и нет, Windows не выглядит иначе, чем программа, запускаемая из того или иного места.

Ну, все, кажется, высказывают свое мнение по этому поводу, поэтому я брошу свои 2 ¢. Другие уже предположили причины, по которым Microsoft решила создать отдельные папки верхнего уровня для 32-битных и 64-битных версий программ, поэтому я оставлю эту часть (лучшей причиной было объяснение Дэвида, что это как удобство для программистов). Конечно, даже тогда, это не совсем решает прямой вопрос, почему это вообще необходимо? Ответ на который предположительно: это не так .

Вместо этого я рассмотрю основную часть вопроса

Не совсем, но расположение программы может повлиять на поведение, но не так, как вы думаете.

Когда вы запускаете программу, Windows устанавливает среду, в которой она запускается (я имею в виду память, адресацию и т. Д., А не только переменные среды). Эта среда зависит от содержимого исполняемого файла (32-битные и 64-битные программы внутренне различаются). Когда вы запускаете 32-разрядную программу в 64-разрядной системе, она запускается в 32-разрядной подсистеме, которая эмулирует 32-разрядную среду. Он называется WoW64 (WoW64 означает Windows на 64-битной Windows ) и похож на то, как 16-битные приложения будут запускаться в XP с использованием NTVDM .

Когда вы запускаете программу с правами администратора или без них, это влияет на то, как она работает, но местоположение не должно влиять на нее (хотя есть некоторые примеры зависимости от местоположения, например, некоторые драйверы).

(Я использую другой компьютер, поэтому я не могу полагаться на историю своего браузера, чтобы отследить свои шаги, но на днях, отвечая на этот вопрос SU, я оказался на этом вопросе SO, который привел меня к Google PROCESSOR_ARCHITEW6432, который привел к этому вопросу SO и это публикация в блоге Microsoft .)

Где-то по пути я читал пост StackOverflow о том, как переменная envirnoment %processor_architecutre% дает разные результаты в зависимости от того, откуда вы запускаете командную строку (я постараюсь найти точную цитату).

Ответ оказался обусловлен тем, была ли запущена 32-разрядная или 64-разрядная версия командной строки (т. Е. Из System32\ или SysWoW64\ ). Другими словами, хотя местоположение, кажется, влияет на поведение программы, это происходит только потому, что существуют разные версии программы, а не потому, что Windows обрабатывает папку особым образом.

Это имеет смысл, поскольку содержимое исполняемого файла определяет, является ли оно 32-разрядным или 64-разрядным, поэтому вы можете поместить как 32-разрядную, так и 64-разрядную копию одной и той же программы (например, foobar32.exe и foobar64.exe ) в одну и ту же папку, и когда вы Выполните их, они будут загружены правильно (64-битная версия будет запущена изначально, а 32-битная будет запущена на уровне эмуляции WoW64).

FreePascal позволяет установить как DOS и Windows , версии , и они идут в той же папке: %programfiles%\FreePascal . Он управляет различными архитектурами, сохраняя исполняемые файлы ( .exe , .sys , .dll , .ovr и т.д.) в отдельных папках и обмен файлов ресурсы как изображения, исходный-файлы и т.д.) Там нет технических причин , что это не может быть сделано также для 32- и 64-битные версии программы. Как сказал Дэвид, программисту будет проще, если они будут храниться отдельно (т. Е. Использовать переменные, чтобы они выглядели так, будто существует только один набор файлов и т. Д.)

Что это Program Files (x86)

Что за папка Program Files (x86) на диске С?— этот вопрос возникает достаточно часто. По сути на системном диске одновременно находятся две папки — Program Files и Program Files (x86), что и вызывает вопросы.

Сама по себе папка Program Files по умолчанию предназначена в операционной системе Windows для помещения в нее файлов устанавливаемых программ. Это означает, что когда вы устанавливаете какую-либо программу на компьютер, то почти всегда программа будет помещена именно в Program Files. Но откуда взялась еще одна такая папка? Чтобы ответить на этот вопрос начну немного издалека:)

Основное существенное для нас отличие этих версий Windows заключается в том, что 64-х битная версия может работать с оперативной памятью более 4Гб, а 32-х разрядная поддерживает лишь до 4 Гб оперативной памяти.

Но не только операционная система, но и программы имеют разрядность. То есть многие программы имеют две версии — 32-х и 64-х разрядную.

Соответственно, ограничение на работу с памятью так или иначе относится и к программам и если все же немного углубиться в тему, то ситуация выглядит следующим образом…

Если на компьютер установлена 32-х разрядная Windows и, соответственно, 32-х разрядные программы, то для работы программ будет доступно не более 3Гб оперативной памяти и даже если в компьютере установлено 8Гб, то остальные 5Гб будут простаивать.

Если установлена 64-х разрядная Windows, то она будет поддерживать как 32-х битные, так и 64-х битные программы и приложения. Причем для приложений доступна вся оперативная память, установленная на компьютере.

То есть в 32-х разрядной Windows можно работать только с 32-х разрядными программами, а в 64-х разрядной — как с теми, так и с другими.

Ну и теперь вернемся к нашим папкам…

Две папки Program Files и Program Files (x86) есть только в 64-битных Windows. Думаю, вы уже догадались почему.

папка program files

В папку Program Files по умолчанию устанавливаются 64-х битные программы, а в Program Files (x86), соответственно, 32-х битные.

Поэтому ничего с этой папкой делать не нужно и она вполне закономерно появилась на вашем компьютере после установки 64-х битной операционной системы.

Program Files и x86 и Program Files что это за папки и можно ли их удалить?


Program Files и x86 и Program Files что это папки и можно ли их удалить? Большинство пользователей Windows всех версий видели данные папочки. Особенно Program Files. На вопрос про их удаление, скажу сразу – не стоит. Но, давайте разберёмся более подробно.

">

Где хранятся файлы программ?

program files x86

Данные папочки переводятся как программные папки. Они созданы самой системой Windows и являются её неотъемлемой частью, с самых первых вариантов данной системы. В начале создания системы в этих папочках (точнее в Program Files) сохранялись все вложенные директории, которые связаны непосредственно с функционалом Виндовс. А именно, почтовиком, плеером, антивирусным ПО и прочими основными программами.

Время шло, и роль данных папок вместе с содержимым сильно увеличивалась. В своём большинстве это связано с компьютерными играми. Думается, вы заметили, что, когда устанавливаете различные программы, вам предлагают выбрать место, куда именно нужно установить программу.

В результате этого, программная папочка становится очень сильно забита различной информацией. А данная папка является системной, системный диск может сильно забиться. Поэтому, я во многих статьях часто упоминал, что устанавливать программы лучше на другие диски, ни на системный.

На данном диске находятся почти все программы, если вы конечно их не устанавливали на другой диск. Особенно это касается массивных игр с отличной графикой. Такие игры очень много весят. Их обязательно нужно установить на другой диск.

Program Files и x86 и Program Files что это за папки Windows?

program files

  1. Когда ваша ОС имеет разрядность x32 бита, то в окончании данной папки нет цифр и лишних букв, и программная папочка только одна. Каждая новая программа, которые вы устанавливаете, инсталлируются именно в неё (если вы сами не устанавливаете её в другое место);
  2. Если таких папок две, то можете не сомневаться, что ваша система имеет разрядность в х64 бита. Даже можно не смотреть на окончание второй папочки x Все программы в х64 бита будут установлены именно в неё.

Думается, из того, что сейчас рассказано, вы и так поняли, что удалять подобную папку нельзя. В противном случае все программы, которые в ней установлены, не будут функционировать.

Если у вас на системном диске стало критически мало места, то нужно начать очищать диск.

  1. Например, можно почистить папочку ТЕМР;
  2. Если у вас установлена помимо основной системы и Old, её желательно удалить;
  3. Также можно сделать перемещение файла подкачки;
  4. Также можно выключить гибернацию;
  5. Или просто почистить системный диск.

ускоритель очищено 90

Вывод: — Program Files что это за папки вы теперь знаете. Также, вам понятно, что Windows в них собирает различные программы и утилиты. Как системные, так и от сторонних производителей. Удалять их ни в коем случае нельзя. Можно только почистить методами, которые описаны. Успехов!

В чем разница между папками Program Files (x86) и Program Files в Windows

32-битная и 64-разрядная Windows

Что хранится в каждой папке

В чем разница между папками Program Files (x86) и Program Files в Windows

Вот почему разные программы устанавливаются в разные папки.

Почему они разделяются?

Функция совместимости, предназначенная для старых 32-разрядных программ, которые могут не знать, что 64-разрядная версия Windows вообще существует, поэтому Windows исключает их общение с 64-битным кодом напрямую.

32-разрядные программы не могут загружать 64-разрядные библиотеки ( DLL-файлы ) и могут вылетать, если они попытались загрузить определенный DLL-файл и обнаружили 64-битную версию вместо 32-разрядной. То же самое касается 64-разрядных программ. Наличие независимых программных файлов для разных архитектур процессоров предотвращает подобные ошибки.

Например, предположим, что Windows просто использовала бы одну папку Program Files. 32-разрядное приложение будет искать файл DLL Microsoft Office, найденный в C:\Program Files\Microsoft Office, и попытаться загрузить его. Однако, если у вас установлена 64-разрядная версия Microsoft Office, приложение будет аварийно завершено и не будет работать должным образом, т.к. оно не сможет найти DLL вообще, потому что 64-разрядная версия Microsoft Office будет располагаться по адрему C:\Program Files\Microsoft Office, а 32-разрядное приложение будет искать в C:\Program Files (x86)\Microsoft Office.

Это также помогает, когда разработчик создает как 32-битную, так и 64-разрядную версии приложения, особенно если они должны быть установлены сразу в некоторых ситуациях. 32-разрядная версия автоматически устанавливается в C:\Program Files (x86), а 64-разрядная версия автоматически устанавливается в C:\Program Files. Если Windows использовала одну папку, разработчику приложения пришлось бы установить 64-разрядную папку в другую папку, чтобы разделить их. И, вероятно, не было бы реального стандарта, где разработчики устанавливали разные версии.

Почему 32-битная папка называется (x86)?

В чем разница между папками Program Files (x86) и Program Files в Windows

Это обычно не имеет значения

Иногда вам нужно знать, где хранится программа. Допустим, вы хотите войти в свой каталог Steam для резервного копирования некоторых файлов. Вы найдете его в C:\Program Files (x86), так как Steam — это 32-разрядная программа.

Если вы не знаете какая версия программы у вас установленна 32 или 64-битная, то вы можете посмотреть в диспетчере задач Windows.

В чем разница между папками Program Files (x86) и Program Files в Windows

Читайте также: