프로그램에서 Windows "Documents"폴더를 합법적으로 사용


40

문서 폴더를 좋아하는 사용자는 자신이 배치 한 항목 만 포함하고 표준 문서 폴더가이 작업에 적합하지 않다는 것을 알고 있습니다. 모든 프로그램은 이 작업을 위해 특별히 폴더가 있다는 사실에도 불구하고 설정, 데이터 또는 그와 똑같이 관련이없는 것을 Documents 폴더 에 넣기를 원하는 것 같습니다 1 .

빈 소리가 나지 않도록 내 개인 "문서"폴더를 예로 들어 보겠습니다. 내가없는 지금 이 폴더 나 자신에 아무것도 저장, 어떤 상황에서도, 결코 I에, 그것을 사용하지 않습니다. 그러나 최상위 폴더에는 46 개의 폴더와 3 개의 파일이 있으며 500 개의 폴더에 총 800 개의 파일이 있습니다. 내가 만들지 않은 190MB의 "문서"입니다. 분명히 실제 문서는이 혼란에서 즉시 잃어 버릴 것입니다.

내 질문은 : 향후 5 년 동안 "문서"를 다시 유용하게 사용할 수 있도록 상황을 개선하기 위해 무엇을 할 수 있는가? 프로그래머가 어떻게 든 덤핑 장으로 사용하지 않도록 교육받을 수 있습니까? OS가 기존 API를 통해 AppData 아래에 숨겨진 "가짜"위치를보고하면서 탐색기와 다양한 열기 / 저장 대화 상자에서만 "실제"문서 폴더가 어디에 있는지 알 수 있습니까? 아니면 완전히 허무하거나 불필요한 시도가 있습니까?


1 다음은 "문서"대신 사용해야하는 다양한 표준 디렉토리에 대한 간략한 요약입니다.

  • RoamingAppData에 대한 사용자 별의 데이터와 설정. 이다 사용자 별이 아닌 임시 데이터에 사용하는 디렉토리. 여기에 있는 모든 것은 지정된 사용자가 구성된 네트워크에 로그온 한 모든 컴퓨터에서 사용할 수 있습니다. 큰 파일은 이러한 환경에서 로그인 / 로그 아웃 속도가 느리므로 여기에 두지 마십시오.
  • LocalAppData에 대한 사용자 및 기계 고유의 데이터와 설정. 이 데이터는 모든 사용자와 컴퓨터마다 다릅니다. 또한 매우 큰 사용자 별 데이터를 배치해야합니다.
  • ProgramData대한 시스템 특정의 데이터와 설정. 로그온 한 사용자에 관계없이 동일하며 네트워크의 다른 시스템으로 로밍되지 않습니다.
  • GetTempPath사용하지 않을 때 데이터 손실없이 삭제 될 수있는 모든 파일 임시 데이터와 같이 캐시를 백업 할 필요가 없기 때문에 캐시 와 같은 곳 이기도 합니다 . 거대한 캐시를 여기에두면 사용자에게 백업 문제를 줄일 수 있습니다.

"문서"자체에만해야한다 이제까지 사용자가 경로를 입력하거나 저장 대화 상자에서 선택하여 수동으로 지정된 경우에 사용. 즉, 유일한 시간이다 지금 "문서"에 물건을 저장하기에 적합합니다.


이 생각에 대한 논의는 meta.PE에 맡겨 져야 합니다.
Josh K

"OS가 기존 API를 통해 AppData 아래에 숨겨진"가짜 "위치를보고하면서 탐색기와 다양한 열기 / 저장 대화 상자에서만"실제 "문서 폴더가있는 위치를 알 수 있습니까?" 사용자의 힘을 줄이는 것은 나쁘다. 그리고 사용자 란 자동화를 프로그래밍하는 방법을 알고있는 사용자를 의미합니다.
대안

1
Linux 상자를 실행하기 때문에 모든 컴퓨터의 Documents 폴더에 정크가 없음을 명확히해야한다고 생각합니다. 나는 이것이 'Windows'로 태그되어 있다는 것을 알고 있지만,이 영광스러운 곳에서 당신이 사용하는 OS를 언급 한 곳은 없습니다.
sevenseacat

1
분명히 문제는 Microsoft 가이 문제를 가능하게하고 심지어 그것을 허용한다는 것입니다 .Visual Studio / SQL Server Management Studio를 살펴보십시오. 흥미로운 질문은-이 문제에 관해 Microsoft에 문의하기 좋은 곳이 있습니까?
Chris Nevill

1
현재 OneDrive 설정은이를 더욱 악화시킵니다. OneDrive 내부의 문서 폴더를 설정하기 때문에 (실제로 좋은 생각입니다). 그러나 Xamarin이 Android NDK를 내 (OneDrive) 문서 폴더로 푸시하는 것이 좋은 아이디어라고 생각할 때까지 거의 1 시간 동안 인터넷이 없었습니다. 다른 3 대의 동기화 된 컴퓨터가 자동으로 모든 파일을 다운로드했습니다. 1.9 GB ...
매트

답변:


19

눈에 띄는 인센티브가 필요합니다. 예를 들어, 사용자가 설치시 문서 폴더에 저장할 수있는 권한을 제공해야한다면 프로그래머는 그 무서운 대화를 유발하지 않기를 원할 것입니다.

인센티브가 있으면 사람들은 자연스럽게 "프로그램 별 프로그램 데이터를 ProgramData에 저장"과 같은 문서를 우연히 발견하게됩니다.

실제로 멋진 권한 프레임 워크로 많은 문제를 해결할 수 있습니다 ...


Mac OS X 용 Apple 샌드 박스와 비슷하게 들립니다. 저장 위치를 ​​선택할 수있는 OS 제어 대화 상자를 통해서만 임의의 위치에 저장할 수 있습니다. 사용자가 확인을 클릭하면 나중에 사용하기 위해 디렉토리의 잠금을 해제합니다.
Laurent Bourgault-Roy

4

제 질문은 "문서"를 다시 유용하게 사용할 수 있도록 상황을 개선하기 위해 앞으로 5 년 동안 할 수있는 일이 있습니까?

이론적으로는 무언가 할 수 있습니다. 이론적으로 Microsoft는 다음을 수행 할 수 있습니다.

  • 사용자 설정 파일을 넣을 수있는 더 좋은 곳을 찾으십시오 (이 과정에서 많은 응용 프로그램이 파일에 설정 을 적용해야하는 유효한 이유가 있음을 인식 함 ).
  • 이것을 표준 Windows 응용 프로그램 개발자 지침에 추가하십시오. (나는 그러한 지침이 존재한다고 가정합니다.)
  • 메이크업 큰 것 , 예를 통해 인증 일종의 가이드 라인 또는 적합성 스코어 카드를 작성하고 게시하여 응용 프로그램의 적합성에 대한합니다. "네이밍과 쉐이 밍"은 놀라운 일이 될 수 있습니다 ...

애플은 전통적으로 이런 종류의 일에 훨씬 더 적극적이었다고 말해야한다. 그리고 그것은 그들의 플랫폼에서 실행되는 것들의 품질을 보여줍니다.


4
Microsoft는 큰 범죄자 자체이거나 최소한 일부 Microsoft 팀은 큰 범죄자입니다.
피터 테일러

"큰 일"에 전적으로 동의하십시오. 더 좋은 곳은 로밍 프로필이 이미 나쁘지 않다는 것입니다. 아직도 모르는 사람이 너무 많거나 더 나쁜 파일이 2GB 이상인 파일을 넣는 것입니다. 특히 게임 ...
로마 Starkov

2

프로그래머 교육으로 귀결된다는 질문에 답하십시오. Windows API에 대해 충분히 알지 못하고 물건을 저장하는 Documents것이 특히 쉬운 경우이지만 그렇지 않은 경우 응용 프로그램이 오염시키지 않아야합니다. 데이터가 상주 할 수있는 사용자 별 알려진 위치를 갖는 것으로 생각됩니다. 여러분이 이야기하는 데이터의 종류에 따라 Mac OS X은 ~/Library폴더를 사용하지만 일부 앱은 여전히 ​​아래에 Documents있습니다. 어쩌면 Windows에 대해 비슷한 것이 있습니까?

개인적으로, 문서를 Dropbox 루트 아래의 동일한 제목의 폴더에 보관하여 추가 작업 수준을 높이지만 제기 한 문제를 피할 수 있습니다.


2

개발자가이 작업을 중단하도록하는 방법에 대한 토론에 참여하고 싶지만, 중지 할 수없는 작업 표시 줄 알림 아이콘과 같은 것들 중 하나가 될 수 있으므로 Microsoft는 깔개 밑에서 쓸어 버렸습니다.

나는 이전에 비유, 문서 폴더에 대해 블로그에 한 나쁜 이웃의 이사 . 사용자로서, 나는 그것을 스스로 청소하려고 시도하는 많은 해킹을 생각해 냈습니다. 초대되지 않은 모든 폴더를 "숨김"으로 표시하면 탐색기에서 사라집니다. Visual Studio 2005, 2008, 2010 폴더에 대한 심볼릭 링크를 일반적인 "Visual Studio"폴더 등으로 만듭니다.

그러나 PowerShell 스크립트를 사용하여 자동화하더라도 사용하는 모든 새 컴퓨터에서 스크립트를 작성하는 데 어려움을 겪었습니다. 다행히 Windows 7에는 나에게 잘 맞는 다른 옵션이 있습니다.

Windows 7은 Documents 폴더가 아닌 "Documents" 라이브러리 를 기본값으로 사용하는 경향이 있습니다. 이 라이브러리에서 % userprofile % \ documents 폴더를 제거하고 대신 Dropbox 폴더를 추가했습니다. 이제 대화 상자 열기 / 저장 대화 상자 가이 위치로 기본 설정되어 있으며 시작-> 문서를 클릭하면 Dropbox로 이동합니다.

궁극적으로 iOS App Store 지침과 유사한 앱에 대한 일종의 기본 인증을보고 싶습니다. 그러나 드라이버 제조업체가 드라이버에 서명하도록 할 수도 없습니다 ...


1
다시 말해서, 당신은 그것을 구하기 위해 할 수있는 일이 없다고 생각하지만 더 나은 아이디어가 떠 있기 때문에 괜찮습니다. +1.
Roman Starkov

1

장기 전략은 문서 이외의 파일을 파일에 저장하는 것을 중지해야한다고 생각합니다. 시스템 데이터, 특히 설정은 파일 시스템 이상의 데이터베이스와 유사한 스토리지 시스템에 저장해야합니다. 해당 데이터베이스를 웹상의 서비스와 쉽고 자동으로 동기화 할 수있는 경우 보너스 포인트를 사용하므로 사용하는 컴퓨터 수와 위치에 관계없이 하나의 설정 세트를 효과적으로 보유 할 수 있습니다.

필자는 파일 시스템의 역사에 대해 잘 모르지만 그 시스템에서 초기에 실현 된 것으로 보이며 실행 파일은 문서와 근본적으로 다른“사물”입니다. 그래서 그것들은 디렉토리와 같은 특수 폴더에 보관 C:\DOS되어 사용자는 기본적으로 나머지 드라이브를 제어했습니다.

아무도 수년에 걸쳐 훨씬 더 복잡하고 관리가 불가능한 시스템이 어떻게 될지, 그리고 이것이 어떻게 혼란 스러울 지 아무도 예측하지 못했습니다. 기술을 처음부터 다시 생각하고 클라우드의 시너지를 활용해야 할 때라고 생각합니다. 회사가하기 전에 실행 가능한 오픈 소스 솔루션이 시작되면 보너스 포인트 :)


3
시스템 작업 만 파일로 저장하고 특히 웹 서비스를 통해 동기화 된 경우 데이터베이스에서 사용자 데이터를 사용할 수 있도록하는 것이 반대의 의미가 있습니까?
Roman Starkov

1
흠, 세부 사항은 확실히 약간의 구체화를 필요로 ...하지만 내가 만들려고했던 진짜 포인트입니다 만 문서 실제 용어에서 (사용자가 실제로 시스템을 실행와는 아무 상관이에 작동 즉, 파일) 정말 적합 파일의 은유로.
Timwi

또한 이것이 문제를 해결하는지 잘 모르겠습니다. 프로그램이 사용자 문서 전용 스토리지 시스템에 액세스 할 수있는 경우에도 여전히 정크를 저장할 수 있습니다. 필요한 것은 기술적 인 수단이나 프로그래머가 자발적으로 중지하도록하여 프로그램을 중지시키는 것입니다.
Roman Starkov

레지스터는 그러한 시스템이었고 잘 작동하지 않았습니다. 프로그램이 자체 설정으로 파일을 저장하는 appdata 접근 방식이 그렇게 나쁘지 않다고 생각합니다.
Pieter B

1

일부 프로그램이 여전히 일부 데이터를 Documents에 저장하더라도 대부분 데이터를 AppData에 저장한다고 생각 합니다. 따라서 이미 올바른 방향으로 가고 있지만 사용자가 할 수있는 일은 많지 않습니다. 각 프로그램은 무엇을 담당해야합니까? 그렇습니다.


1
동의한다; 사용자는 무력합니다. 이것은 프로그래머 만 해결할 수 있습니다.
Roman Starkov

1

해결 방법 :
1. '문서'폴더를 마우스 오른쪽 버튼으로 클릭하고 '위치'탭을 선택하십시오.
2. 'Documents'위치를 'C : \ Admin \ Configs'를 선택한 다른 위치로 변경합니다 (이 작업이 완료되면 'documents'에 쓰는 모든 응용 프로그램은 C : \ Admin \ Configs로 전송되어야합니다).

그러나 이것은 문제의 절반 만 해결하므로 다음 단계는 분명합니다.

  1. 'C : \ User \\ Documentation'에 새 폴더를 만듭니다.

그런 다음 해당 디렉토리를 라이브러리에 추가하고 이전 디렉토리를 삭제할 수 있어야합니다 .'C : \ User \ ** Documentation ** '에 다른 폴더 이름을 의도적으로 설정했기 때문에 그 경로에 딱 맞는 경로를 만들 수 없었습니다. 폴더.

위의 사실 때문에 C : \ User \ 폴더에 'documents'폴더가 다시 나타나면 폴더를 마우스 오른쪽 단추로 클릭하여 보이지 않는 폴더로 만듭니다.


0

텍스트 파일에 설정을 저장하는 것은 포괄적 인 크로스 플랫폼 솔루션입니다.

개발자가 크로스 플랫폼 설정 데이터베이스 표준을 작성하지 않는 한, 우리 대부분은 사용자 디렉토리에 덤프 된 텍스트 파일을 계속 사용할 것이라고 생각합니다.

똑똑한 사람들은 특수한 설정 저장소 엔진 (예 : Windows 레지스트리)을 허용하는 시스템에 대해 다른 설정 인터페이스를 만듭니다.


1
"문서"폴더는 "사용자"디렉토리가 아닙니다. "문서"폴더가 있습니다 하위 디렉토리 사용자의 디렉토리의 의도는 한 가정 곳으로 사용자가 저장 한 자신의 문서를. 문제는 프로그램 설정을위한 더 나은 (및 문서화되어있는) 장소가 있지만 프로그램 이 "문서"폴더 에 자신의 내용 을 넣기로 결정했다는 것입니다.
Dean Harding

1
이것은 문서 엉망으로가는 한 가지 경로의 좋은 예입니다. 사람들은 Windows에 대해 잘 몰라도 프로그램을 이식하고 생각 나는 첫 번째 디렉토리에 물건을 버립니다. 특히 "AppData"를 찾는 것보다 "Documents"를 찾는 것이 훨씬 쉽습니다. 특히 후자는 Windows 개발에 깊이 관여하지 않는 사람에게는 익숙하지 않은 용어를 로밍 또는 로컬 프로필에 넣을지 여부를 결정하기 때문입니다.
Roman Starkov

합의, 다시 말해 실제 솔루션은 표준 크로스 플랫폼 설정 스토리지 엔진을 보유하는 것입니다.
Craige

1
그런 일은 없을 것이다. 원래 질문은 모든 Windows 프로그래머를 재교육하는 것에 관한 것이며, 귀하의 대답은 모든 프로그래머를 재교육하는 것입니다. 텍스트 파일로 남겨 두어야 할 이유가 많기 때문에 유닉스 / 리눅스 프로그래머에게 설정 데이터베이스를 사지 말아야하며, 마이크로 소프트 방식으로 일을하는 것에 대한 추가 저항에 직면하게 될 것이다.
David Thornley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.