การใช้โฟลเดอร์“ เอกสาร” ของ Windows ในโปรแกรมอย่างถูกกฎหมาย


40

ทุกคนที่ชอบโฟลเดอร์เอกสารของพวกเขาที่จะมีเฉพาะสิ่งที่พวกเขาอยู่ที่นั่นรู้ว่าโฟลเดอร์เอกสารมาตรฐานไม่เหมาะสมอย่างสมบูรณ์สำหรับงานนี้ ทุกโปรแกรมที่ดูเหมือนว่าจะต้องการที่จะนำมันตั้งค่าข้อมูลหรือสิ่งที่ไม่เกี่ยวข้องอย่างเท่าเทียมกันเข้าไปในเอกสารโฟลเดอร์แม้จะมีความจริงที่ว่ามีโฟลเดอร์เฉพาะสำหรับงานนี้1

เพื่อที่จะได้เสียงที่ไม่ว่างเปล่าให้นำโฟลเดอร์ "Documents" ส่วนตัวของฉันไปเป็นตัวอย่าง ฉันไม่เคยใช้มันในกรณีที่ฉันไม่เคยบันทึกสิ่งใด ๆ ลงในโฟลเดอร์นี้ด้วยตัวเอง และยังมี 46 โฟลเดอร์และ 3 ไฟล์ที่ระดับบนสุดรวม 800 ไฟล์ใน 500 โฟลเดอร์ นั่นคือ "เอกสาร" 190 MB ที่ฉันไม่ได้สร้าง เห็นได้ชัดว่าเอกสารจริงใด ๆ จะหายไปทันทีในระเบียบ

คำถามของฉันคือ : สามารถทำอะไรเพื่อปรับปรุงสถานการณ์ให้เพียงพอเพื่อให้ "เอกสาร" มีประโยชน์อีกครั้งพูดในอีก 5 ปีข้างหน้า? ผู้เขียนโปรแกรมสามารถได้รับการศึกษาบ้างหรือไม่ที่จะไม่ใช้มันเป็นพื้นทิ้ง? ระบบปฏิบัติการสามารถเริ่มรายงานตำแหน่ง "ปลอม" บางอย่างที่ซ่อนอยู่ภายใต้ AppData ผ่าน API ที่มีอยู่ในขณะที่อนุญาตเฉพาะ Explorer และกล่องโต้ตอบเปิด / บันทึกต่างๆเพื่อทราบว่าโฟลเดอร์เอกสาร "ของจริง" อยู่ที่ไหน หรือความพยายามใด ๆ ที่ไร้ประโยชน์อย่างสมบูรณ์หรือไม่จำเป็น?


1สำหรับระเบียนต่อไปนี้เป็นบทสรุปโดยย่อของไดเรกทอรีมาตรฐานต่างๆที่ควรใช้แทน "เอกสาร":

  • RoamingAppDataสำหรับข้อมูลเฉพาะและการตั้งค่าของผู้ใช้ นี่คือไดเรกทอรีที่จะใช้สำหรับข้อมูลเฉพาะของผู้ใช้ที่ไม่ได้ชั่วคราว สิ่งใด ๆ ที่วางไว้ที่นี่จะสามารถใช้ได้ในเครื่องใด ๆที่ผู้ใช้ที่กำหนดเข้าสู่ระบบเครือข่ายที่กำหนดค่า อย่าวางไฟล์ขนาดใหญ่ไว้ที่นี่เพราะจะทำให้การเข้าสู่ระบบ / ออกจากระบบช้าลงในสภาพแวดล้อมดังกล่าว
  • LocalAppDataสำหรับข้อมูลและการตั้งค่าเฉพาะของผู้ใช้และเครื่องจักร ข้อมูลนี้แตกต่างกันสำหรับผู้ใช้ทุกคนและทุกเครื่อง นี่เป็นที่ที่ควรวางข้อมูลเฉพาะของผู้ใช้ขนาดใหญ่มาก
  • ProgramDataสำหรับเครื่องเฉพาะข้อมูลและการตั้งค่า สิ่งเหล่านี้เหมือนกันไม่ว่าผู้ใช้รายใดที่เข้าสู่ระบบและจะไม่เดินทางไปยังเครื่องอื่น ๆ ในเครือข่าย
  • GetTempPathสำหรับไฟล์ทั้งหมดที่อาจถูกลบโดยไม่สูญเสียข้อมูลเมื่อไม่ได้ใช้งาน นอกจากนี้ยังเป็นสถานที่สำหรับสิ่งต่าง ๆ เช่นแคชเพราะเช่นเดียวกับข้อมูลชั่วคราวแคชไม่จำเป็นต้องทำการสำรองข้อมูล วางแคชขนาดใหญ่ของคุณที่นี่และคุณจะบันทึกปัญหาการสำรองข้อมูลของผู้ใช้ของคุณ

"เอกสาร" ตัวเองควรที่เคยใช้ในกรณีที่ผู้ใช้ที่ระบุด้วยตนเองโดยการป้อนเส้นทางหรือเลือกไว้ในบันทึกการโต้ตอบ นั่นเป็นครั้งเดียวเท่านั้นที่เหมาะสมที่จะบันทึกเนื้อหาใน "เอกสาร"


การหารือเกี่ยวกับความคิดนี้ควรจะนำไปmeta.PE
Josh K

"ระบบปฏิบัติการเริ่มรายงานตำแหน่ง" ปลอม "บางอย่างที่ซ่อนอยู่ภายใต้ AppData ผ่าน API ที่มีอยู่ในขณะที่อนุญาตเฉพาะ Explorer และกล่องโต้ตอบเปิด / บันทึกต่างๆเพื่อทราบว่าโฟลเดอร์เอกสาร" ของจริง "อยู่ที่ไหน? สิ่งใดก็ตามที่ช่วยลดพลังของผู้ใช้ก็ไม่ดี และโดยผู้ใช้ฉันหมายถึงผู้ใช้ที่รู้วิธีการโปรแกรมอัตโนมัติ
ทางเลือก

1
ฉันรู้สึกว่าต้องชี้แจงว่าโฟลเดอร์เอกสารในคอมพิวเตอร์ทุกเครื่องของฉันปลอดจากขยะเพราะฉันใช้กล่อง Linux ฉันรู้ว่านี่คือการติดแท็ก 'Windows' แต่ไม่มีที่ไหนในโผนผางยกย่องนี้คุณพูดถึงสิ่งที่คุณใช้ระบบปฏิบัติการ
sevenseacat

1
เห็นได้ชัดว่าปัญหาอยู่ที่นี่กับ Microsoft ทำให้สิ่งนี้เกิดขึ้นและแม้กระทั่งสัญญา - ดูที่ Visual Studio / SQL Server Management Studio คำถามที่น่าสนใจคือ - มีสถานที่ที่เหมาะแก่การพูดคุยกับ Microsoft เกี่ยวกับปัญหานี้หรือไม่?
Chris Nevill

1
การตั้งค่า OneDrive ปัจจุบันทำให้ยิ่งแย่ลง เพราะมันตั้งค่าโฟลเดอร์เอกสารใน OneDrive (ซึ่งเป็นความคิดที่ดีจริงๆ) แต่ฉันเพิ่งใช้เวลาเกือบ 1 ชั่วโมงไม่มีอินเทอร์เน็ตจนกระทั่งฉันสังเกตเห็นว่าซามารินคิดว่ามันเป็นการดีที่จะผลักดัน Android NDK ไปยังโฟลเดอร์เอกสาร (OneDrive) ของฉัน คอมพิวเตอร์ที่ซิงค์อีก 3 เครื่องของฉันดาวน์โหลดไฟล์ทั้งหมดโดยอัตโนมัติ 1.9 GB ...
แมตต์

คำตอบ:


19

จะต้องมีสิ่งจูงใจที่มองเห็นได้ ตัวอย่างเช่นหากผู้ใช้ต้องให้สิทธิ์ในการบันทึกในโฟลเดอร์เอกสาร (ณ เวลาติดตั้ง) โปรแกรมเมอร์จะต้องหลีกเลี่ยงการเรียกใช้กล่องโต้ตอบที่น่ากลัว

เมื่อคุณมีแรงจูงใจผู้คนจะสะดุดเมื่อเอกสารเช่น "บันทึกข้อมูลโปรแกรมเฉพาะเครื่องใน ProgramData" ในขณะที่พยายามแก้ไข

ที่จริงแล้วปัญหามากมายสามารถแก้ไขได้โดยกรอบการอนุญาตที่ดี ...


ฟังดูคล้ายกับ Sandbox ของ Apple สำหรับ Mac OS X: คุณสามารถบันทึกได้เฉพาะในตำแหน่งที่กำหนดโดยผ่านกล่องโต้ตอบ OS Controlled ที่ให้คุณเลือกตำแหน่งที่บันทึกได้ หากผู้ใช้คลิกตกลงมันจะปลดล็อกไดเร็กทอรีสำหรับใช้ในอนาคต
Laurent Bourgault-Roy

4

คำถามของฉันคือ: สามารถทำอะไรเพื่อปรับปรุงสถานการณ์ให้เพียงพอเพื่อให้ "เอกสาร" มีประโยชน์อีกครั้งพูดในอีก 5 ปีข้างหน้า?

ในทางทฤษฎีบางสิ่งสามารถทำได้ ในทางทฤษฎี Microsoft สามารถ:

  • หาที่ที่ดีกว่าในการวางไฟล์การตั้งค่าของผู้ใช้ (ในกระบวนการรับรู้ว่าแอปพลิเคชันจำนวนมากมีเหตุผลที่ถูกต้องในการตั้งค่าไฟล์)
  • เพิ่มสิ่งนี้ในแนวทางนักพัฒนาแอปพลิเคชัน Windows มาตรฐาน (ฉันคิดว่าแนวทางดังกล่าวมีอยู่จริง)
  • ทำเรื่องใหญ่เกี่ยวกับการใช้งานให้สอดคล้องกับแนวทางเช่นผ่านการรับรองบางประเภทหรือโดยการสร้างและเผยแพร่ดัชนีชี้วัดความสอดคล้อง "การตั้งชื่อและความอับอาย" สามารถทำงานได้อย่างมหัศจรรย์ ...

ต้องบอกว่าแอปเปิลนั้นมีพฤติกรรมเชิงรุกในลักษณะนี้มากขึ้น และมันแสดงให้เห็นถึงคุณภาพของสิ่งต่าง ๆ ที่วิ่งบนแพลตฟอร์มของพวกเขา


4
เป็นที่น่าสังเกตว่า Microsoft เป็นผู้กระทำความผิดตัวใหญ่ (หรืออย่างน้อยก็บางทีมของ Microsoft เป็นผู้กระทำความผิดใหญ่)
Peter Taylor

เห็นด้วยอย่างยิ่งกับประเด็น "เรื่องใหญ่" ในฐานะที่เป็นสถานที่ที่ดีกว่า - ฉันคิดว่าโปรไฟล์การโรมมิ่งไม่ได้เลวร้ายไปแล้วมันเป็นแค่ว่ามีคนจำนวนมากเกินไปที่ไม่รู้จักหรือแย่กว่านั้นคือใส่ไฟล์ขนาดใหญ่ (2GB +) ในนั้น โดยเฉพาะเกม ...
Roman Starkov

2

ฉันคิดว่าคุณตอบคำถามเพราะมันทำให้การศึกษาโปรแกรมเมอร์ลดลง ฉันไม่รู้เกี่ยวกับ Windows API มากพอและหากการจัดเก็บสิ่งต่าง ๆDocumentsเป็นเรื่องง่ายโดยเฉพาะอย่างยิ่ง แต่ถ้าไม่เช่นนั้นแอปพลิเคชันไม่ควรก่อให้เกิดมลพิษ ฉันคิดว่ามันน่าจะมีที่ตั้งต่อผู้ใช้ที่ข้อมูลสามารถอยู่ได้ สำหรับการจัดเรียงของข้อมูลที่คุณพูดคุยเกี่ยวกับ, Mac OS X ใช้โฟลเดอร์แม้ว่าปพลิเคชันบางส่วนยังคงติดสิ่งที่อยู่ภายใต้~/Library Documentsอาจมีบางสิ่งที่คล้ายกันที่ควรมีอยู่ (ใช่หรือไม่) สำหรับ Windows

โดยส่วนตัวแล้วฉันเก็บเอกสารไว้ในโฟลเดอร์เดียวกันภายใต้รูท Dropbox ของฉันซึ่งเพิ่มระดับการทำงานพิเศษให้ฉัน แต่ช่วยฉันจากปัญหาที่คุณยกขึ้น


2

แม้ว่าฉันเข้าใจว่าคุณต้องการมีส่วนร่วมในการอภิปรายเกี่ยวกับการให้นักพัฒนาหยุดทำสิ่งนี้ แต่มันอาจจบลงด้วยการเป็นหนึ่งในสิ่งเหล่านั้นเช่นไอคอนการแจ้งเตือนของแถบงานซึ่งไม่สามารถหยุดได้

ฉันได้ blogged ก่อนหน้านี้เกี่ยวกับโฟลเดอร์เอกสารเปรียบเสมือนมันจะย้ายออกจากพื้นที่ใกล้เคียงที่ไม่ดี ในฐานะผู้ใช้ฉันมาพร้อมกับแฮ็คจำนวนมากเพื่อพยายามทำความสะอาดด้วยตัวเอง ฉันจะทำเครื่องหมายโฟลเดอร์ที่ไม่ได้รับเชิญทั้งหมดว่า "ซ่อน" ซึ่งจะทำให้โฟลเดอร์หายไปจาก Explorer ฉันจะสร้างลิงก์สัญลักษณ์สำหรับโฟลเดอร์ Visual Studio 2005, 2008, 2010 ไปยังโฟลเดอร์ "Visual Studio" ทั่วไป ฯลฯ

แต่ถึงแม้จะมีสคริปต์ PowerShell เพื่อทำให้มันเป็นไปโดยอัตโนมัติฉันก็เบื่อที่จะทำมันในเครื่องใหม่ทุกเครื่องที่ฉันใช้ โชคดีที่ใน Windows 7 มีตัวเลือกอื่นที่ใช้งานได้ดีสำหรับฉัน

ตั้งแต่ Windows 7 มีแนวโน้มที่จะเริ่มต้นไปที่ห้องสมุด "เอกสาร" ตรงข้ามกับโฟลเดอร์เอกสาร ฉันเพิ่งลบโฟลเดอร์% 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

แม้ว่าโปรแกรมบางโปรแกรมจะยังเก็บข้อมูลบางอย่างในเอกสารฉันคิดว่าส่วนใหญ่เก็บข้อมูลของพวกเขาในAppDataแทนดังนั้นพวกเขาจึงไปในทิศทางที่ถูกต้องแล้ว แต่มีผู้ใช้ไม่มากที่ทำได้: แต่ละโปรแกรมมีหน้าที่รับผิดชอบต่อสิ่งที่มันทำ ทำ.


1
ฉันเห็นด้วย; ผู้ใช้ไม่มีประโยชน์ สิ่งนี้สามารถแก้ไขได้โดยโปรแกรมเมอร์เท่านั้น
Roman Starkov

1

วิธีแก้ไข:
1. คลิกขวาที่โฟลเดอร์ 'เอกสาร' และเลือกแท็บ 'ตำแหน่ง'
2. เปลี่ยนตำแหน่ง 'เอกสาร' เป็นสถานที่อื่นที่ฉันเลือก 'C: \ Admin \ Configs' (เมื่อดำเนินการเสร็จแล้วแอปพลิเคชันทั้งหมดที่เขียนถึง 'เอกสาร' จะถูกส่งออกไปยัง C: \ Admin \ Configs แทน

แต่วิธีนี้จะแก้ปัญหาเพียงครึ่งเดียวขั้นตอนต่อไปควรจะค่อนข้างชัดเจน

  1. สร้างโฟลเดอร์ใหม่ใน 'C: \ User \\ Documentation'

คุณควรจะสามารถเพิ่มไดเรคทอรี่นั้นลงในห้องสมุดและลบอันเก่าฉันตั้งใจตั้งชื่อโฟลเดอร์อื่นใน 'C: \ User \ ** เอกสาร **' เพราะฉันต้องการให้แน่ใจว่าไม่มีสิ่งใดสามารถทำได้ยาก โฟลเดอร์

หากโฟลเดอร์ 'เอกสาร' ปรากฏขึ้นอีกครั้งใน C: \ User \ ของคุณเนื่องจากข้อเท็จจริงข้างต้นเพียงคลิกขวาที่โฟลเดอร์และทำให้เป็นโฟลเดอร์ที่มองไม่เห็น


0

การจัดเก็บการตั้งค่าในไฟล์ข้อความเป็นโซลูชันข้ามแพลตฟอร์มที่รวบรวมได้ทั้งหมด

หากนักพัฒนาไม่ต้องสร้างมาตรฐานฐานข้อมูลการตั้งค่าข้ามแพลตฟอร์มฉันคิดว่าพวกเราส่วนใหญ่จะใช้ไฟล์ข้อความที่ถูกเททิ้งไปยังไดเรกทอรีผู้ใช้

พวกเราที่ฉลาดจะสร้างอินเตอร์เฟสการตั้งค่าที่แตกต่างกันสำหรับระบบที่อนุญาตให้เอ็นจิ้นการจัดเก็บการตั้งค่าพิเศษ (เช่น Windows Registry)


1
โปรดทราบว่าโฟลเดอร์ "เอกสาร" ไม่ใช่ไดเรกทอรี "ผู้ใช้" โฟลเดอร์ "เอกสาร" เป็นไดเรกทอรีย่อยของไดเรกทอรีของผู้ใช้จุดประสงค์ที่ควรจะเป็นที่ที่ผู้ใช้บันทึกเอกสารของตัวเอง ปัญหาคือว่าโปรแกรมการตัดสินใจที่จะนำพวกเขาสิ่งที่อยู่ในโฟลเดอร์ "เอกสาร" เช่นกันแม้ว่าจะมีที่ดีกว่า (และเอกสารดังกล่าว) สถานที่สำหรับการตั้งค่าโปรแกรมที่จะไป
Dean Harding

1
นี่เป็นตัวอย่างที่ดีของเส้นทางเดียวที่มุ่งสู่ระเบียบเอกสาร ผู้คนจะพอร์ตโปรแกรมโดยไม่ต้องรู้อะไรมากมายเกี่ยวกับ Windows และทิ้งข้อมูลของพวกเขาไว้ในไดเรกทอรีแรกที่นึกถึง มันอาจจะง่ายกว่าที่จะหา "เอกสาร" มากกว่าที่จะหา "AppData" โดยเฉพาะอย่างยิ่งเนื่องจากสิ่งหลังเกี่ยวข้องกับการตัดสินใจว่าจะใส่ไว้ในโรมมิ่งหรือโปรไฟล์ท้องถิ่น - คำศัพท์ที่ไม่คุ้นเคยสำหรับทุกคนที่ไม่เกี่ยวข้องกับการพัฒนา Windows
Roman Starkov

เห็นด้วยและอีกครั้ง - โซลูชั่นที่แท้จริงคือการมีเครื่องมือจัดเก็บการตั้งค่าข้ามแพลตฟอร์มมาตรฐาน
Craige

1
จะไม่เกิดขึ้น คำถามเดิมนั้นเกี่ยวกับการให้ความรู้แก่โปรแกรมเมอร์ Windows ทั้งหมดและคำตอบของคุณคือให้ความรู้แก่โปรแกรมเมอร์ทุกคน คุณจะไม่ได้รับโปรแกรมเมอร์ Unix / Linux มาซื้อในฐานข้อมูลการตั้งค่าเพราะมีเหตุผลที่ดีมากที่จะเก็บไว้เป็นไฟล์ข้อความ
David Thornley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.