Thursday 8 March 2012

Usuwanie niechcianych folderów z dysku

Nie znoszę, kiedy system operacyjny próbuje za mnie decydować, co jest dla mnie najlepsze. A już w szczególności, kiedy odmawia mi uprawnień do katalogów i plików na moim dysku!
Podobny probem opisywałem przy okazji katalogu windows.old, ale tym razem rozwiązanie nie było tak proste.

Po jakiejś instalacji pozostał mi na dysku twardym katalog o długiej nazwie, i za nic nie chce się dać usunąć. W dodatku zawiera tylko pliki EULA w kilkudziesięciu językach. Te pliki nie wskazują co prawda, który dokładnie program je zostawił, ale pojawia się nazwa Microsoftu.

Pierwsza próba usunięcia katalogu po dobroci się nie udaje:

Sprawdzam właściwości katalogu, idę do karty Zabezpieczenia. Klikam "Zaawansowane".

OK, niby jako należący do grupy Administratorzy, powinienem mieć uprawnienia do zmiany katalogu wraz z zawartością (w tym do usuwania). Więc dlaczego nie mogę go usunąć?
Próbuję zmienić uprawnienia. Nie jest to możliwe, dostaję w twarz komunikatem o błędzie.

To inaczej. Przechodzę na kartę Właściciel. Właścicielem jest SYSTEM. Zmieniam go na aktualnego użytkownika. Zmienione. Sprawdzam, czy mogę usunąć katalog. Niestety, tym razem muszę uzyskać uprawnienia od samego siebie.

Usuwam SYSTEM z listy uprawnionych użytkowników. Znów odmowa dostępu. Mimo to SYSTEM znika, zostaję tylko ja. Kolejna próba usunięcia. Efekt - najwyraźniej mam już uprawnienia do katalogu, ale nie do plików w środku.

Kolejna próba zmiany właściwości plików wewnątrz katalogu kończy się niedającym się zamknąć oknem dialogowym. Grzecznie kończę Task Managerem proces explorer.exe i uruchamiam go ponownie.

W końcu odnalazłem odpowiednie ustawienia. Po tym, jak już zmieniłem właściciela katalogu (dla podkatalogów również) i pozostał tylko jeden użytkownik w zaawansowanych ustawieniach zabezpieczeń, należało kliknąć na uprawnienia Administratorów, wybrać "Edytuj" i w kolejnym oknie zaznaczyć najlepiej wszystkie uprawnienia (w tym do usuwania). Co ważne, należało również zaznaczyć pole o zastąpieniu ustawień obiektów podrzędnych.

Teraz mogłem wreszcie usunąć katalog.


Podsumowując:
1.       Zmień właściciela obiektu, i koniecznie zaznacz aby zmieniony był również dla "podkontentów i obiektów".
2.       Usuń niepotrzebnych użytkowników, takich jak SYSTEM
3.       Zmień uprawnienia ustawiając sobie pełną kontrolę i koniecznie zaznacz, aby uprawnienia obiektów podrzędnych były dziedziczone.

Powyższe kroki pozwolą odzyskać kontrolę nad katalogiem.

Wednesday 7 March 2012

Telerik Upload control file types

I use Telerik's RadUpload control in my SharePoint project. That's why I don't define Upload control in ASPX file, but I do this from code-behind instead.

In this scenario I use RadDialogOpener class. Then I add DialogDefinition, and set FileManagerDialogParameters.
RadDialogOpener DialogOpener1;
DialogOpener1 = new RadDialogOpener();
FileManagerDialogParameters fmdp = new FileManagerDialogParameters();
fmdp.FileBrowserContentProviderTypeName = typeof(SharepointTelerikCustomProvider).AssemblyQualifiedName;
DialogDefinition mediaManager = new DialogDefinition(typeof(MediaManagerDialog), fmdp);
DialogOpener1.DialogDefinitions.Add("MediaManager", mediaManager);
The effect looks like this:
Recently I needed to create two different fields, one for uploading video, other for audio. Question is, how to change default file types of MediaManagerDialog?
I set SearchPatterns property:
fmdp.SearchPatterns = new string[] { "*.wma", "*.wav", "*.mp3", "*.m3u", "*.mid", "*.midi", "*.snd" };
for audio control and
fmdp.SearchPatterns = new string[] { "*.wmv", "*.avi", "*.mpeg", "*.mpg", "*.mpe", "*.mkv" };
for video.

Watch out for proper format: asterisk-dot-extension. Otherwise you get InvalidFileExtension message.