Любой, кому нравится, чтобы их папка «Документы» содержала только то, что они там размещают, знает, что стандартная папка «Документы» совершенно не подходит для этой задачи. Кажется, что каждая программа хочет поместить свои настройки, данные или что-то одинаково не относящееся к папке « Документы », несмотря на то, что есть папки специально для этой работы 1 .
Чтобы это не звучало пусто, возьмите мою личную папку «Документы» в качестве примера. Я никогда не когда - либо использовать его, в том , что я никогда, ни при каких обстоятельствах, сохранить что - либо в эту папку сам. И все же он содержит 46 папок и 3 файла на верхнем уровне, всего 800 файлов в 500 папках. Это 190 МБ «документов», которые я не создавал. Очевидно, что любые настоящие документы немедленно потерялись бы в этом беспорядке.
Мой вопрос : можно ли что-нибудь сделать, чтобы улучшить ситуацию настолько, чтобы «Документы» снова стали полезными, скажем, в течение следующих 5 лет? Могут ли программисты быть как-то образованными в массовом порядке, чтобы не использовать их в качестве свалки? Может ли ОС начать сообщать о каком-то «поддельном» месте, скрытом под AppData, через существующие API, при этом только обозревателю и различным диалоговым окнам открытия / сохранения можно узнать, где находится «настоящая» папка «Документы»? Или любые попытки совершенно бесполезны или даже не нужны?
1 Для записи, вот краткий обзор различных стандартных каталогов , которые должны быть использованы вместо «Документы»:
RoamingAppData
для пользовательских данных и настроек. Это каталог использовать для конкретных пользователей без временных данных. Все размещенное здесь будет доступно на любом компьютере , на котором данный пользователь входит в сети, где это настроено. Не размещайте большие файлы здесь, потому что они замедляют вход / выход из системы в таких средах.LocalAppData
для пользовательских и машинных данных и настроек. Эти данные различаются для каждого пользователя и каждой машины. Это также место, где должны быть размещены очень большие пользовательские данные.ProgramData
для машинных данных и настроек. Они одинаковы независимо от того, какой пользователь вошел в систему, и не будут перемещаться на другие машины в сети.GetTempPath
для всех файлов, которые могут быть стерты без потери данных, когда они не используются. Это также место для таких вещей , как кэшей , так как временные данные, кэш не нужно быть подкреплены. Разместите здесь свой огромный кеш, и вы избавите своего пользователя от проблем с резервным копированием.
«Документы» сами должны только когда - либо будет использоваться , если пользователь указал вручную, введя путь или выбрав его в диалоговом окне сохранения. Это единственный раз, когда уместно сохранять вещи в «Документах».
источник
Ответы:
Там должен быть какой-то видимый стимул. Например, если пользователям нужно было предоставить разрешение на сохранение в папке «Документы» (во время установки), программисты хотели бы избежать запуска этого страшного диалога.
Если у вас есть стимул, люди, естественно, наткнуться на документацию, такую как «Сохранить данные программы для компьютера в ProgramData», пытаясь ее решить.
На самом деле, многие проблемы могут быть решены с помощью хорошей структуры разрешений ...
источник
Теоретически что-то можно сделать. Теоретически Microsoft могла бы:
Надо сказать, что Apple традиционно была намного более активна в подобных вещах. И это проявляется в качестве материала, который работает на их платформах.
источник
Я думаю, что вы отвечаете на вопрос в том смысле, что он сводится к образованию программистов. Я не знаю достаточно о Windows API, и если хранение вещей
Documents
особенно легко, но если нет, то приложения не должны его загрязнять. Я думаю, что все сводится к тому, что для каждого пользователя известно место, где могут находиться данные. Для того типа данных, о которых вы говорите, Mac OS X использует эту~/Library
папку, хотя некоторые приложения по-прежнему хранят информациюDocuments
. Может быть, что-то подобное должно (есть?) Существовать для Windows.Лично я храню свои Документы в одноименной папке в корне Dropbox, что добавляет мне дополнительный уровень работы, но избавляет меня от проблемы, которую вы подняли.
источник
Хотя я понимаю, что вы хотите принять участие в дискуссии о том, как заставить разработчиков прекратить это делать, может оказаться, что одна из таких вещей, как значки уведомлений на панели задач, не может быть остановлена, поэтому Microsoft просто сунула их под коврик.
Ранее я писал в блоге о папке «Документы», сравнивая ее с выходом из плохого района . Как пользователь, я придумал кучу хаков для того, чтобы попытаться очистить его самостоятельно. Я бы пометил все незваные папки как «скрытые», что привело бы к их исчезновению из Проводника. Я хотел бы создать символические ссылки для папок Visual Studio 2005, 2008, 2010 в общую папку «Visual Studio» и т. Д.
Но даже с помощью сценариев PowerShell для его автоматизации мне надоело делать это на каждой новой машине, которую я использовал. К счастью, в Windows 7 есть еще один вариант, который мне подходит.
Поскольку в Windows 7 по умолчанию используется библиотека «Документы», а не папка «Документы». Я просто удалил папку% userprofile% \ documents из этой библиотеки и вместо этого добавил папку Dropbox. Итак, теперь диалоги открытия / сохранения по умолчанию находятся в этом месте, и когда я нажимаю Пуск -> Документы, он переносит меня в Dropbox.
В конечном счете, я бы хотел увидеть какую-то базовую сертификацию для приложений, аналогичных рекомендациям iOS App Store. Но они даже не могут заставить производителей драйверов подписывать свои драйверы ...
источник
Я думаю, что долгосрочной стратегией должно быть прекращение хранения чего-либо, кроме документов в файлах. Системные данные, особенно настройки, должны храниться в системах хранения, которые больше похожи на базу данных, чем на файловую систему. Бонусные баллы, если эту базу данных можно легко и автоматически синхронизировать со службой в Интернете, поэтому у вас фактически есть один набор настроек независимо от того, сколько компьютеров вы используете и где.
Я не очень разбираюсь в истории файловых систем, но мне кажется, что она была реализована довольно рано в этой системе, и исполняемые файлы - это принципиально иная вещь, чем документы. Таким образом, они были уложены в специальную папку (затем называемую каталогом),
C:\DOS
и пользователь в основном контролировал оставшуюся часть диска.Никто на самом деле не предсказал, насколько более сложными и неуправляемыми системами станут эти годы и какой это будет беспорядок. Я думаю, что пришло время переосмыслить технологию с нуля и использовать синергию облака. Бонусные баллы, если работоспособное решение с открытым исходным кодом взлетает раньше, чем компания :)
источник
Даже если некоторые программы все еще хранят некоторые данные в Documents , я думаю, что большинство хранят свои данные вместо этого в AppData , так что они уже движутся в правильном направлении, однако, пользователи не могут многое сделать: каждая программа отвечает за то, что она делает.
источник
Решение:
1. Щелкните правой кнопкой мыши папку «Документы» и выберите вкладку «Местоположение».
2. Измените местоположение «Документы» на другое место, которое я выбрал «C: \ Admin \ Configs» (после того, как это будет сделано, все приложения, пишущие в «документы», должны быть отправлены в C: \ Admin \ Configs.
Но это решает только половину проблемы, следующий шаг должен быть довольно очевидным.
Затем вы сможете добавить этот каталог в библиотеки и удалить старый, я намеренно установил другое имя папки в «C: \ User \ ** Documentation **», потому что я хотел убедиться, что ничто не может быть просто жестким путем к этому папки.
Если папка «документы» снова появится в вашем C: \ User \ из-за вышеуказанного факта, просто щелкните правой кнопкой мыши по папке и сделайте ее невидимой папкой.
источник
Хранение настроек в текстовом файле - универсальное кроссплатформенное решение.
Если разработчики не должны были создать стандарт базы данных кроссплатформенных настроек, я думаю, что большинство из нас будет продолжать использовать текстовые файлы, выгруженные в каталог пользователя.
Те из нас, кто умен, создадут различные интерфейсы настроек для систем, которые позволяют использовать специальные механизмы хранения настроек (например, реестр Windows).
источник