Penggunaan folder "Documents" Windows secara sah dalam program

40

Siapa pun yang suka folder Dokumen mereka hanya berisi hal-hal yang mereka tempatkan di sana tahu bahwa folder Dokumen standar sama sekali tidak cocok untuk tugas ini. Setiap program tampaknya ingin memasukkan pengaturannya, data, atau sesuatu yang sama tidak relevannya ke dalam folder Documents , meskipun ada folder khusus untuk pekerjaan ini 1 .

Agar ini tidak terdengar kosong, ambil folder "Dokumen" pribadi saya sebagai contoh. Saya tidak pernah menggunakannya, karena saya tidak pernah, dalam keadaan apa pun, menyimpan apa pun ke dalam folder ini sendiri. Namun, itu berisi 46 folder dan 3 file di tingkat atas, dengan total 800 file dalam 500 folder. Itu adalah 190 MB "dokumen" yang tidak saya buat. Jelas semua dokumen aktual akan segera hilang dalam kekacauan ini.

Pertanyaan saya adalah : adakah yang bisa dilakukan untuk memperbaiki situasi secukupnya agar "Dokumen" bermanfaat lagi, katakanlah selama 5 tahun ke depan? Bisakah para programmer dididik secara massal untuk tidak menggunakannya sebagai tempat pembuangan? Bisakah OS mulai melaporkan beberapa lokasi "palsu" yang disembunyikan di bawah AppData melalui API yang ada, sementara hanya mengizinkan Explorer dan berbagai dialog Buka / Simpan untuk mengetahui di mana folder Dokumen "asli" berada? Atau apakah ada upaya yang sama sekali sia-sia atau bahkan tidak perlu?


1 Sebagai catatan, berikut ini ringkasan singkat berbagai direktori standar yang harus digunakan alih-alih "Dokumen":

  • RoamingAppDatauntuk data dan pengaturan khusus pengguna . Ini adalah yang direktori digunakan untuk data non-sementara pengguna tertentu. Apa pun yang ditempatkan di sini akan tersedia pada mesin apa pun yang pengguna logon masuk ke dalam jaringan tempat ini dikonfigurasi. Jangan letakkan file besar di sini, karena memperlambat login / logout di lingkungan seperti itu.
  • LocalAppDatauntuk data dan pengaturan khusus pengguna dan mesin . Data ini berbeda untuk setiap pengguna dan setiap mesin. Ini juga tempat data khusus pengguna yang sangat besar harus ditempatkan.
  • ProgramDatauntuk data dan pengaturan khusus mesin . Ini sama terlepas dari pengguna mana yang masuk, dan tidak akan berkeliaran ke mesin lain dalam jaringan.
  • GetTempPathuntuk semua file yang dapat dihapus tanpa kehilangan data saat tidak digunakan. Ini juga yang tempat untuk hal-hal seperti cache , karena seperti data sementara, cache tidak perlu didukung. Tempatkan cache besar Anda di sini dan Anda akan menyimpan masalah cadangan pada pengguna Anda.

"Dokumen" itu sendiri seharusnya hanya pernah digunakan jika pengguna ditentukan secara manual dengan memasukkan path atau memilih dalam sebuah dialog Simpan. Itulah satu-satunya waktu yang tepat untuk menyimpan barang di "Dokumen".

Roman Starkov
sumber
Pembahasan pemikiran ini harus diambil untuk meta.PE .
Josh K
"Bisakah OS mulai melaporkan beberapa lokasi" palsu "yang disembunyikan di bawah AppData melalui API yang ada, sementara hanya mengizinkan Explorer dan berbagai dialog Buka / Simpan untuk mengetahui di mana folder" nyata "Dokumen berada?" Apa pun yang mengurangi kekuatan pengguna adalah buruk. Dan oleh pengguna yang saya maksud adalah pengguna yang tahu cara memprogram untuk otomatisasi.
alternatif
1
Saya merasa perlu mengklarifikasi bahwa folder Dokumen di semua komputer saya bebas dari sampah, karena saya menjalankan kotak Linux. Saya tahu ini ditandai 'Windows', tetapi tidak ada dalam kata-kata kasar yang Anda sebut OS apa yang Anda gunakan.
sevenseacat
1
Jelas masalah di sini terletak pada Microsoft yang memungkinkan ini terjadi dan bahkan menjanjikannya - lihat di Visual Studio / SQL Server Management Studio. Pertanyaan yang menarik adalah - apakah ada tempat yang baik untuk mengomel di Microsoft tentang masalah ini?
Chris Nevill
1
Pengaturan OneDrive saat ini membuat ini lebih buruk. Karena pengaturan folder Dokumen di dalam OneDrive (yang sebenarnya ide yang bagus). Tapi saya hanya punya 1 jam hampir tidak ada internet, sampai saya perhatikan Xamarin berpikir itu akan menjadi ide yang bagus untuk mendorong Android NDK ke folder (OneDrive) Dokumen saya. 3 komputer saya yang disinkronkan lainnya secara otomatis mengunduh semua file. 1,9 GB ...
Matt

Jawaban:

19

Perlu ada insentif yang terlihat. Misalnya, jika pengguna harus memberikan izin untuk menyimpan di folder Documents (pada waktu instal), programmer ingin menghindari memicu dialog menakutkan itu.

Setelah Anda mendapatkan insentif, orang akan secara alami menemukan dokumentasi seperti "Simpan data program khusus mesin di ProgramData" saat mencoba menyelesaikannya.

Sebenarnya, banyak masalah bisa diselesaikan dengan kerangka izin yang bagus ...

Craig Gidney
sumber
Terdengar agak seperti kotak pasir Apple untuk Mac OS X: Anda hanya dapat menyimpan di lokasi yang sewenang-wenang dengan melalui dialog OS Controlled yang memungkinkan Anda memilih lokasi penyimpanan. Jika pengguna mengklik OK, itu membuka direktori untuk digunakan di masa depan.
Laurent Bourgault-Roy
4

Pertanyaan saya adalah: adakah yang bisa dilakukan untuk memperbaiki situasi agar membuat "Dokumen" bermanfaat lagi, katakanlah selama 5 tahun ke depan?

Secara teori, sesuatu bisa dilakukan. Secara teori Microsoft dapat:

  • Datang dengan tempat yang lebih baik untuk meletakkan file pengaturan pengguna (dalam proses, mengakui bahwa banyak aplikasi memiliki alasan yang sah untuk meletakkan pengaturan dalam file).
  • Tambahkan ini ke pedoman pengembang aplikasi Windows standar. (Saya menganggap pedoman semacam itu memang ada.)
  • Buat hal besar tentang kesesuaian aplikasi dengan pedoman, misalnya melalui semacam sertifikasi atau dengan membuat dan menerbitkan kartu skor kesesuaian. "Penamaan dan mempermalukan" bisa membuat keajaiban ...

Harus dikatakan bahwa Apple secara tradisional jauh lebih proaktif dengan hal semacam ini. Dan itu menunjukkan kualitas barang yang berjalan di platform mereka.

Stephen C
sumber
4
Perlu dicatat bahwa Microsoft adalah pelaku besar itu sendiri (atau, setidaknya, beberapa tim Microsoft adalah pelaku besar).
Peter Taylor
Sepenuhnya setuju dengan poin "hal besar". Adapun tempat yang lebih baik - saya pikir profil roaming tidak terlalu buruk, hanya saja ada terlalu banyak orang yang tidak mengetahuinya, atau lebih buruk, menaruh file besar (2GB +) di sana. Terutama permainan ...
Roman Starkov
2

Saya pikir Anda menjawab pertanyaan karena itu bermuara pada pendidikan programmer. Saya tidak cukup tahu tentang Windows API dan jika menyimpan barang-barang di Documentsdalamnya sangat mudah, tetapi jika tidak maka aplikasi tidak boleh mencemari itu. Saya pikir ini bermuara pada memiliki lokasi yang diketahui per pengguna di mana data dapat berada. Untuk jenis data yang Anda bicarakan, Mac OS X menggunakan ~/Libraryfolder, meskipun beberapa aplikasi masih menyimpan beberapa hal Documents. Mungkin sesuatu yang serupa seharusnya (ada?) Ada untuk Windows.

Secara pribadi, saya menyimpan Dokumen saya di folder dengan judul yang sama di bawah akar Dropbox saya, yang memang menambah tingkat pekerjaan tambahan untuk saya, tetapi menyelamatkan saya dari masalah yang Anda angkat.

roguesys
sumber
2

Meskipun saya mengerti Anda ingin terlibat dalam diskusi tentang membuat pengembang berhenti melakukan ini, mungkin akhirnya menjadi salah satu dari hal-hal seperti ikon pemberitahuan bilah tugas yang tidak dapat dihentikan sehingga Microsoft hanya menyapu mereka di bawah karpet.

Saya sebelumnya telah membuat blog tentang folder Documents, menyamakannya dengan pindah dari lingkungan yang buruk . Sebagai pengguna, saya membuat banyak peretasan karena mencoba membersihkannya sendiri. Saya akan menandai semua folder yang tidak diundang sebagai "tersembunyi" yang akan membuatnya hilang dari Explorer. Saya akan membuat tautan simbolis untuk folder Visual Studio 2005, 2008, 2010 ke folder "Visual Studio" yang umum, dll.

Tetapi bahkan dengan skrip PowerShell untuk mengotomatisasi itu, saya bosan melakukannya pada setiap mesin baru yang saya gunakan. Untungnya, di Windows 7 ada opsi lain yang berfungsi cukup baik untuk saya.

Karena Windows 7 cenderung default ke pustaka "Documents" sebagai lawan dari folder Documents. Saya cukup menghapus folder% userprofile% \ dokumen dari pustaka ini dan sebagai gantinya menambahkan folder Dropbox saya. Jadi sekarang buka / simpan dialog default ke lokasi ini dan ketika saya mengklik Mulai -> Dokumen, saya akan dibawa ke Dropbox saya.

Pada akhirnya, saya ingin melihat semacam sertifikasi dasar untuk aplikasi yang mirip dengan pedoman iOS App Store. Tetapi mereka bahkan tidak dapat membuat produsen driver untuk menandatangani driver mereka ...

Josh
sumber
1
Jadi dengan kata lain, Anda berpikir tidak ada yang bisa dilakukan untuk menyelamatkannya, tetapi tidak apa-apa karena ada ide-ide yang lebih baik beredar. +1.
Roman Starkov
1

Saya pikir strategi jangka panjang harus berhenti menyimpan apa pun selain dokumen dalam file. Data sistem, terutama pengaturan, harus disimpan dalam sistem penyimpanan yang menyerupai database lebih dari sistem file. Poin bonus jika database itu dapat dengan mudah dan otomatis disinkronkan dengan layanan di web, sehingga Anda secara efektif memiliki satu set pengaturan terlepas dari berapa banyak komputer yang Anda gunakan dan di mana.

Saya tidak tahu banyak tentang sejarah sistem file, tetapi bagi saya tampaknya sudah disadari sejak awal bahwa sistem dan file yang dapat dieksekusi adalah "hal" yang secara fundamental berbeda dari dokumen. Jadi yang tersimpan di folder khusus (lalu disebut direktori) suka C:\DOSdan pengguna pada dasarnya mengendalikan sisa drive.

Tidak ada yang benar-benar meramalkan bagaimana sistem yang jauh lebih kompleks dan tidak terkelola akan menjadi selama bertahun-tahun dan apa yang akan terjadi kekacauan ini. Saya pikir inilah saatnya untuk memikirkan kembali teknologi dari atas ke atas dan memanfaatkan sinergi cloud. Poin bonus jika solusi open-source yang bisa dijalankan lepas landas sebelum perusahaan melakukannya :)

Timwi
sumber
3
Bukankah lebih masuk akal untuk melakukan yang sebaliknya, yaitu hanya menyimpan hal-hal sistem sebagai file, dan memiliki data pengguna yang tersedia dalam database, terutama jika disinkronkan melalui layanan web?
Roman Starkov
1
Hm, perinciannya tentu perlu diperjelas ... tapi poin sebenarnya yang saya coba buat adalah bahwa hanya dokumen dalam istilah nyata (yaitu file yang benar-benar berfungsi oleh pengguna yang tidak ada hubungannya dengan menjalankan sistem) benar-benar cocok ke dalam metafora file.
Timwi
Juga, saya tidak yakin ini mengatasi masalah ini. Jika program memiliki akses ke sistem penyimpanan yang didedikasikan untuk dokumen pengguna, mereka masih bisa meletakkan sampah mereka di sana. Apa yang diperlukan adalah sesuatu yang menghentikan program melakukan ini, baik melalui cara teknis atau dengan meminta programmer untuk berhenti secara sukarela.
Roman Starkov
Register adalah sistem yang demikian dan tidak bekerja dengan baik. Saya tidak berpikir pendekatan appdata di mana program menyimpan file dengan pengaturan mereka sendiri adalah yang buruk.
Pieter B
1

Bahkan jika beberapa program masih menyimpan beberapa data dalam Dokumen , saya pikir sebagian besar menyimpan data mereka di AppData sebagai gantinya, jadi mereka sudah menuju ke arah yang benar, tetapi tidak banyak pengguna yang dapat melakukannya: setiap program bertanggung jawab untuk apa itu tidak.

wildpeaks
sumber
1
Saya setuju; pengguna tidak berdaya. Ini hanya bisa diselesaikan oleh programmer.
Roman Starkov
1

Solusi:
1. Klik kanan folder 'Dokumen' dan pilih tab 'lokasi'.
2. Ubah lokasi 'Dokumen' ke tempat lain yang saya pilih 'C: \ Admin \ Configs' (setelah ini selesai, semua aplikasi, menulis ke 'dokumen' harus dikirim ke C: \ Admin \ Configs sebagai gantinya.

Tapi ini menyelesaikan hanya setengah dari masalah, langkah selanjutnya harus cukup jelas.

  1. Buat folder baru di 'C: \ User \\ Documentation'

Anda harus dapat menambahkan direktori itu ke perpustakaan dan menghapus yang lama, saya sengaja mengatur nama folder yang berbeda di 'C: \ User \ ** Documentation **' karena saya ingin memastikan tidak ada yang bisa jalan keras untuk itu map.

Jika folder 'dokumen' muncul lagi di C Anda: \ Pengguna \ karena fakta di atas, cukup klik kanan folder tersebut dan jadikan folder itu tidak terlihat.

Batin
sumber
0

Menyimpan pengaturan dalam file teks adalah solusi lintas platform semua tangkap.

Kecuali jika pengembang membuat standar basis data pengaturan lintas-platform, saya pikir sebagian besar dari kita akan tetap menggunakan file teks yang dibuang ke direktori pengguna.

Kita yang pintar akan membuat antarmuka pengaturan yang berbeda untuk sistem yang memungkinkan mesin penyimpanan pengaturan khusus (seperti Windows Registry).

Mendambakan
sumber
1
Perhatikan bahwa folder "Dokumen" bukan direktori "pengguna". "Dokumen" folder adalah sub-direktori dari direktori pengguna, niat yang seharusnya menjadi tempat pengguna disimpan sendiri dokumen. Masalahnya adalah bahwa program memutuskan untuk meletakkan barang - barang mereka di folder "Dokumen" juga, meskipun ada tempat yang lebih baik (dan didokumentasikan seperti itu) untuk pengaturan program.
Dean Harding
1
Ini adalah contoh yang baik dari satu jalur menuju kekacauan Dokumen. Orang-orang port program tanpa mengetahui banyak tentang Windows, dan membuang barang-barang mereka di direktori pertama yang terlintas dalam pikiran. Mungkin lebih mudah untuk menemukan "Dokumen" daripada menemukan "AppData", terutama karena yang terakhir melibatkan memutuskan apakah akan memasukkannya ke profil roaming atau lokal - istilah yang tidak dikenal bagi siapa pun yang tidak terlalu terlibat dengan pengembangan Windows.
Roman Starkov
Setuju, dan sekali lagi - solusi nyata adalah memiliki mesin penyimpanan pengaturan lintas platform standar .
Craige
1
Tidak akan terjadi. Pertanyaan aslinya adalah tentang mendidik kembali semua programmer Windows, dan jawaban Anda adalah mendidik kembali setiap programmer. Anda juga tidak akan membuat programmer Unix / Linux untuk membeli ke dalam database pengaturan, karena ada alasan yang sangat baik untuk meninggalkan ini sebagai file teks, dan Anda akan menghadapi perlawanan tambahan untuk melakukan hal-hal dengan cara Microsoft.
David Thornley