Windows “Belgeler” klasörünün programlarda meşru kullanımı


40

Belgeler klasörünü yalnızca yerleştirdikleri şeyleri içermesini seven herkes, standart Belgeler klasörünün bu görev için tamamen uygun olmadığını bilir. Her programın içine eşit alakasız onun ayarlar, veriler ya da bir şey koymak istiyorum görünüyor Belgeler klasörleri bu iş için özel olarak var olmasına rağmen, klasörün 1 .

Bu boş görünmüyor, kişisel "Belgeler" klasörümü örnek olarak al. Ben yok hiç bu klasöre kendim içine bir şey kaydetme, hiçbir koşulda, hiçbir zaman I'de, onu kullanın. Yine de, 500 klasörde toplam 800 dosya için üst seviyede 46 klasör ve 3 dosya içermektedir. Bu 190 MB'lık "belge" oluşturmadım. Açıkçası herhangi bir gerçek belge bu karmaşa içinde derhal kaybolurdu.

Sorum şu : Gelecek 5 yıl boyunca, "Belgeler" in tekrar faydalı olmasını sağlamak için durumu yeterince iyileştirmek için bir şey yapılabilir mi? Programcılar bir şekilde onu çöplük olarak kullanmamaları konusunda eğitimli olabilirler mi? İşletim sistemi AppData altında gizlenen bazı "sahte" konumların mevcut API'ler üzerinden raporlanmasına başlayabilirken, Gezgin ve çeşitli Aç / Kaydet diyalog pencerelerinin "gerçek" Belgeler klasörünün nerede olduğunu bilmesine izin verebilir mi? Veya herhangi bir teşebbüs tamamen boşuna ve hatta gereksiz mi?


1 Kayıt için, "Belgeler" yerine kullanılması gereken çeşitli standart dizinlerin kısa bir özeti:

  • RoamingAppDataiçin kullanıcıya özgü verileri ve ayarları. Bu kullanıcıya özgü olmayan geçici veri için kullanılacak dizin. Buraya yerleştirilen her şey, belirli bir kullanıcının, yapılandırıldığı ağlarda oturum açtığı herhangi bir makinede kullanılabilir . Buraya büyük dosyalar koymayın, çünkü bu tür ortamlarda oturum açma / kapatma işlemini yavaşlatırlar.
  • LocalAppDataiçin kullanıcı ve makinaya özel verileri ve ayarları. Bu veriler her kullanıcı ve her makine için farklıdır. Bu aynı zamanda çok büyük bir kullanıcıya özel verilerin yerleştirilmesi gereken yerdir.
  • ProgramDataiçin makine özgü verileri ve ayarları. Bunlar, hangi kullanıcının oturum açtığından bağımsız olarak aynıdır ve bir ağdaki diğer makinelere dolaşmayacaktır.
  • GetTempPathkullanımda değilken veri kaybı olmadan silinebilecek tüm dosyalar için. Bu da gibi şeyler için yer önbelleklerine geçici verileri gibi, bir önbellek yedeklenmesi gerekmez, çünkü. Büyük önbelleğinizi buraya yerleştirin ve kullanıcıyı bazı yedekleme sorunlarından kurtarın.

"Belgeler" kendisi sadece gerektiği hiç kullanıcı bir yol girerek veya bir Kaydet iletişim kutusunda seçerek elle belirtilmişse kullanılmalıdır. Yani tek zamandır hiç "Belgeler" şeyler kurtarmak için benimsedikleri görülmüştür.


Bu düşünce üzerine tartışma meta.pe'ye yapılmalıdır .
Josh K,

"İşletim sistemi AppData altında gizli olan bazı" sahte "konumların mevcut API'ler üzerinden raporlanmasına başlayabilirken, Gezgin ve çeşitli Aç / Kaydet diyalog pencerelerinin" gerçek "Belgeler klasörünün nerede olduğunu bilmesine izin verir mi?" Kullanıcıların gücünü azaltan herhangi bir şey kötü. Ve kullanıcılar tarafından otomasyon için nasıl programlanacağını bilen kullanıcıları kastediyorum.
alternatif

1
Tüm bilgisayarlarımdaki Belgeler klasörünün boş olduğunu açıklığa kavuşturmam gerektiğini hissediyorum çünkü Linux kutuları çalıştırıyorum. Bunun 'Windows' etiketli olduğunu biliyorum, ancak bu yüceltilmiş rantta hiçbir yerde hangi işletim sistemini kullandığınızdan bahsetmediniz.
sevenseacat

1
Açıkçası, buradaki sorun Microsoft'un bunun olmasına izin vermesine ve hatta bunu teşvik etmesine neden oluyor - Visual Studio / SQL Server Management Studio'ya bakın. İlginç bir soru - bu sorunla ilgili olarak Microsoft'ta atmak için iyi bir yer var mı?
Chris Nevill,

1
Mevcut OneDrive ayarları bunu daha da kötüleştirir. Çünkü OneDrive içindeki Belgeler klasörünü ayarlıyor (ki bu gerçekten güzel bir fikir). Ancak Xamarin'in Android NDK'yi (OneDrive) Belgelerim klasörüne sokmanın iyi bir fikir olacağını fark edene kadar neredeyse hiç internetsiz 1 saatim vardı. Diğer 3 senkronize edilmiş bilgisayarım tüm dosyaları otomatik olarak indirdi. 1.9 GB ...
Mat

Yanıtlar:


19

Bazı görünür teşvikler olması gerekecekti. Örneğin, kullanıcılar Belgeler klasörüne kaydetmek için izin vermek zorunda kaldılarsa (yükleme sırasında), programcılar bu korkutucu iletişim kutusunu tetiklemekten kaçınmak isterdi.

Teşvik aldığınızda, insanlar doğal olarak "Makineye özgü program verilerini ProgramData uygulamasında kaydet" gibi belgelere rastlarlar.

Aslında, pek çok sorun güzel bir izin çerçevesiyle çözülebilir ...


Mac OS X için Apple sanal alanı gibi biraz ses: Kaydetme konumunu seçmenize izin veren bir OS Kontrollü iletişim kutusundan geçerek yalnızca rastgele bir yere kaydedebilirsiniz. Kullanıcı Tamam'ı tıklatırsa, ileride kullanmak üzere dizinin kilidini açar.
Laurent Bourgault-Roy

4

Sorum şu: Gelecek 5 yıl boyunca, "Belgeler" in tekrar faydalı olmasını sağlamak için durumu yeterince iyileştirmek için bir şey yapılabilir mi?

Teorik olarak, bir şey yapılabilir. Teoride Microsoft şunları yapabilir:

  • Kullanıcı ayar dosyalarını koymak için daha iyi bir yer bulun (bu sırada birçok uygulamanın dosyaya ayarları koymak için geçerli nedenleri olduğunu kabul ederek ).
  • Bunu standart Windows uygulama geliştiricisi yönergelerine ekleyin. (Bu tür kuralların var olduğunu varsayıyorum.)
  • Kılavuzlara uygunluk uygulamaları hakkında büyük bir şey yapın ; örneğin, bir tür sertifikalandırma yoluyla veya uygunluk puan kartları oluşturarak ve yayınlayarak. "Adlandırma ve utanma" harikalar yaratabilirdi ...

Apple'ın geleneksel olarak bu tür şeylerle daha proaktif olduğu söylenmelidir. Ve platformlarında çalışan şeylerin kalitesini gösterir.


4
Microsoft'un büyük bir suçlu olduğunu (veya en azından bazı Microsoft ekiplerinin büyük suçlu olduğunu) belirtmekte fayda var.
Peter Taylor

"Büyük şey" meselesine tamamen katılıyorum. Daha iyi bir yer gelince - sanırım dolaşım profili zaten çok da kötü değil, sadece onu bilmeyen ya da daha kötüsü çok büyük (2GB +) dosyaları oraya koyan çok fazla insan var. Özellikle oyunlar ...
Roman Starkov 16:11

2

Sanırım programcı eğitimine kaydığı sorusuna cevap veriyorsunuz. Windows API hakkında yeterince bilgim yok ve bir şeyleri depolamak Documentsözellikle kolay ise, ancak olmasaydı uygulamalar onu kirletmemelidir. Sanırım verilerin bulunabileceği, kullanıcı başına bilinen bir konuma sahip olmaktan geliyor. Konuştuğunuz veri türleri için, Mac OS X bu ~/Libraryklasörü kullanıyor , ancak bazı uygulamalar hala bunları etkiliyor Documents. Belki de Windows için benzer bir şey olmalı mı?

Şahsen, Belgelerimi Dropbox kökümün altında aynı başlıkta bir klasörde tutuyorum, bu da benim için fazladan bir çalışma düzeyi ekliyor, ancak beni ortaya çıkardığınız sorundan kurtarıyor.


2

Geliştiricilere bunu yapmayı bırakma hakkında bir tartışma yapmak istediğinizi anladığım halde, Microsoft'un onları halıya çarpması için durdurulamayan görev çubuğu bildirim simgeleri gibi şeylerden biri haline gelebilir.

Daha önce Belgeler klasörü hakkında blog yazdım, kötü bir mahalleden taşınıyor gibi . Bir kullanıcı olarak, kendi başıma temizlemeye çalıştığım için bir sürü saldırıda bulundum. Tüm davet edilmemiş klasörleri "gizli" olarak işaretlerdim, bu da onları Explorer'dan kaybolmasını sağlar. Visual Studio 2005, 2008, 2010 klasörleri için ortak bir "Visual Studio" klasörüne vb. Sembolik bağlantılar oluşturacağım.

Ama onu otomatikleştirmek için PowerShell scriptleri ile bile, kullandığım her yeni makinede yapmaktan bıktım. Neyse ki, Windows 7'de benim için oldukça iyi çalışan başka bir seçenek var.

Windows 7 , Belgeler klasörünün aksine "Belgeler" kitaplığına varsayılan eğilimindedir . % Userprofile% \ documents klasörünü bu kütüphaneden kaldırdım ve bunun yerine Dropbox klasörümü ekledim. Bu nedenle, şimdi aç / kaydet iletişim kutuları varsayılan olarak bu konumdur ve Başlat -> Belgeler'e tıkladığımda beni Dropbox'ıma götürür.

Sonuçta, iOS App Store kurallarına benzer uygulamalar için bir tür temel sertifika görmeyi çok isterim. Ama sürücü üreticilerine sürücülerini imzalamalarını bile sağlayamıyorlar ...


1
Yani başka bir deyişle, onu kurtarmak için hiçbir şey yapılamayacağını düşünüyorsunuz, fakat sorun yok çünkü etrafta dolaşan daha iyi fikirler var. +1.
Roman Starkov

1

Bence uzun vadeli bir strateji dosyalardaki belgelerden başka bir şeyi saklamayı bırakmalı. Sistem verileri, özellikle ayarlar, bir veritabanına bir dosya sistemine benzeyen depolama sistemlerinde depolanmalıdır. Bonus, bu veritabanının web üzerindeki bir hizmetle kolayca ve otomatik olarak senkronize edilebildiği durumlarda, kaç bilgisayar kullandığınıza ve nerede kullandığınıza bakılmaksızın etkin bir ayar grubuna sahip olursunuz.

Dosya sistemlerinin tarihi hakkında pek bir şey bilmiyorum, ancak bana bu sistemin oldukça erken gerçekleştiğini ve çalıştırılabilir dosyaların belgelerden temelde farklı bir "şey" olduğunu gösteriyor. Böylece C:\DOS, bunlar gibi özel bir klasörde (daha sonra dizin olarak adlandırılırlar) istiflenirler ve kullanıcı temel olarak sürücünün geri kalanının kontrolünü ele geçirirdi.

Hiç kimse gerçekten yıllar boyunca ne kadar karmaşık ve yönetilemez sistemlerin olacağını ve bunun ne kadar karışıklık yaratacağını tahmin etmedi. Teknolojiyi sıfırdan yeniden düşünmenin ve bulutun sinerjisini güçlendirmenin zamanı geldiğini düşünüyorum. Çalışılabilir bir açık kaynak çözümü, bir şirket bunu yapmadan önce başlasa, bonus puan alır :)


3
Bunun tersini yapmak, yani sadece sistem dosyalarını dosya olarak saklamak ve kullanıcı verilerinin veritabanlarında mevcut olması, özellikle web servisleri ile senkronize edildiğinde daha anlamlı olmaz mıydı?
Roman Starkov

1
Hm, ayrıntıların kesinlikle biraz dışa vurmaya ihtiyacı var ... ama yapmaya çalıştığım asıl nokta, yalnızca gerçek terimdeki belgelerin (yani, bir kullanıcının üzerinde çalıştığı, sistemin çalıştırılmasıyla hiçbir ilgisi olmayan dosyalar) gerçekten uygun olması. Dosyanın metaforuna
Timwi

Ayrıca, bunun sorunu çözdüğünden de emin değilim. Programlar, kullanıcı belgelerine adanmış depolama sistemine erişebiliyorsa, hala oraya önemsiz bırakabilirler. Gerekli olan, bunu teknik programları kullanarak ya da programcıların gönüllü olarak durmalarını sağlayarak programların gerçekleştirmesini durduran bir şeydir.
Roman Starkov

Kayıt sistemi böyle bir sistemdi ve çok iyi sonuçlanmadı. Programların kendi ayarlarıyla dosyaları depoladığı uygulamaların bu kadar kötü olduğunu sanmıyorum.
Pieter B

1

Bazı programlar hala bazı verileri Belgeler'de saklasalar bile , sanırım çoğunun verilerini AppData'da sakladığını düşünüyorum , bu nedenle zaten doğru yönde gidiyorlar, ancak yapabilecekleri çok fazla şey yok: her program bu programdan sorumlu. yapar.


1
Katılıyorum; kullanıcılar çaresiz. Bu sadece programcılar tarafından çözülebilir.
Roman Starkov

1

Çözüm:
1. 'Documents' klasörüne sağ tıklayın ve 'location' sekmesini seçin.
2. 'Belgeler' konumunu 'C: \ Admin \ Configs' seçeneğini seçtiğim başka bir yere değiştirin (bu yapıldığında, 'belgelere' yazılan tüm uygulamalar bunun yerine C: \ Admin \ Configs'a gönderilmelidir.

Ancak bu sorunun sadece yarısını çözer, bir sonraki adım oldukça açık olmalıdır.

  1. 'C: \ User \\ Documentation' içinde yeni bir klasör oluşturun

Daha sonra bu dizini kütüphanelere ekleyebilmeli ve eskisini silebilmelisiniz, kasıtlı olarak 'C: \ User \ ** Documentation **' klasöründe farklı bir klasör adı belirledim çünkü hiçbir şeyin zor yoldan gidemeyeceğinden emin olmak istedim. Klasör.

Yukarıdaki belgelerden dolayı 'belgeler' klasörü C: \ Kullanıcı \ 'da tekrar belirirse, klasörü sağ tıklayın ve görünmez bir klasör haline getirin.


0

Ayarları bir metin dosyasında saklamak, hepsini bir araya getiren çapraz platform çözümüdür.

Geliştiriciler bir platformlar arası veritabanı veritabanı standardı oluşturmazlarsa, çoğumuzun kullanıcı dizinine gönderilen metin dosyalarını kullanmaya devam edeceğini düşünüyorum.

Akıllı olanlarımız, özel ayar depolama motorlarına (Windows Kayıt Defteri gibi) izin veren sistemler için farklı ayar arayüzleri yaratacaktır.


1
"Belgeler" klasörünün "kullanıcı" dizini olmadığını unutmayın. "Belgeler" klasörü, kullanıcının kendi belgelerini kaydettiği yerin olması gerektiği düşünülen , kullanıcı dizininin bir alt dizinidir . Sorun programları koymaya karar olduğunu kendi daha iyi (ve belgelenmiş gibi) program ayarları gitmek için yerlerde bulunmasına rağmen, hem "Belgeler" klasöründeki şeyler.
Dean Harding,

1
Bu, Documents karmaşasına giden bir yol için iyi bir örnek. İnsanlar, Windows hakkında fazla bir şey bilmeden bir program yüklüyor ve akla gelen ilk dizine eşyalarını atıyorlar. "Dokümanları" bulmak, "AppData" bulmaktan çok daha kolaydır, özellikle de ikincisi, Windows geliştirmesiyle derinden ilgisi olmayan kimselerin bilmediği terimleri dolaşım veya yerel profile koyup koymayacağına karar vermeyi içerir.
Roman Starkov

Anlaştık ve yine - asıl çözüm, standart bir platformlar arası depolama motoruna sahip olmak.
Craige

1
Olmayacak. Asıl soru, tüm Windows programcılarını yeniden eğitmekle ilgili ve cevabınız her programcıyı yeniden eğitmek. Ayrıca, Unix / Linux programcılarının bir ayarlar veritabanına girmesini sağlayamayacaksınız, çünkü bunları metin dosyaları olarak bırakmak için çok iyi nedenler var ve Microsoft yolunda bazı şeyleri yapmaya karşı daha fazla dirençle karşılaşacaksınız.
David Thornley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.