Centrum skryptów - Microsoft Office

W jaki sposób mogę określić rozmiar folderu Moje Dokumenty? Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

W jaki sposób mogę określić rozmiar folderu Moje Dokumenty?

Halo Skrypciarzu! W jaki sposób mogę określić rozmiar folderu Moje dokumenty?

-- SC

Cześć SC. Folder Moje dokumenty to w rzeczywistości zwykły folder na twardym dysku, mający np. taką ścieżkę dostępu: C:\Documents and Settings\kenmyer\Moje dokumenty. Rzeczywista ścieżka będzie się rzecz jasna różnić w zależności od nazwy zalogowanego użytkownika. Poza tym folder ten można przenieść do innej lokalizacji, więc wcale nie musi znajdować się w folderze C:\Documents and Settings. Chodzi o to, że najtrudniejszą częścią stojącego przed nami zadania jest znalezienie folderu Moje dokumenty. Po znalezieniu go, można określić jego rozmiar używając metody FileSystemObject (a jest to możliwe, bo Moje Dokumenty to, jak mówiliśmy, zwyczajny folder na dysku).

Jak zatem znaleźć folder Moje Dokumenty? Jest na to kilka sposobów, my jednak użyjemy obiektu Shell; postąpimy tak, bo obiekt Shell może posłużyć do wyszukania ścieżki dostępu do folderów specjalnych wszelkiej maści – takich jak Moje obrazy, Moja muzyka, Moje miejsca sieciowe itd. Oto skrypt podając wielkość folderu Moje dokumenty:

Const MY_DOCUMENTS = &H5&



Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objShell = CreateObject("Shell.Application")



Set objFolder = objShell.Namespace(MY_DOCUMENTS)

Set objFolderItem = objFolder.Self

strPath = objFolderItem.Path



Set objFolder = objFSO.GetFolder(strPath)

Wscript.Echo objFolder.Size

Na początek definiujemy stałą o nazwie MY_DOCUMENTS i przypisujemy jej wartość &H5&, czyli wartość używaną przez obiekt Shell w odniesieniach do folderu Moje dokumenty. Następnie tworzymy dwa osobne obiekty: objFSO (wystąpienie FileSystemObject) i objShell (wystąpienie obiektu Shell).

I teraz zaczyna się zabawa. Używamy metody Namespace do połączenia z folderem Moje dokumenty i następnie właściwości Self do utworzenia odniesienia do obiektu FolderItem oznaczającego Moje dokumenty. (Nieistotne w tej chwili, do czego nam to potrzebne; ważne że jest to wymagane przez obiekt Shell.) I w końcu, zapisujemy wartość właściwości Path (np. C:\Documents and Settings\kenmyer\Moje dokumenty) w zmiennej o nazwie.

Nadążasz? Teraz, kiedy znamy ścieżkę dostępu do folderu Moje dokumenty, możemy użyć obiektu FileSystemObject i metody GetFolder, by połączyć się z Moimi dokumentami. Tak, zrobiliśmy to już raz, ale wtedy chodziło o obiekt Shell. Teraz powtarzamy ten proces z FileSystemObject. Dlaczeogo? No cóż, obiekt Shell może znaleźć nam folder Moje dokumenty, ale nie poda jego wielkości. Obiekt FileSystemObject może podać wielkość, ale nie znajdzie Moich dokumentów. Dlatego właśnie użyć musimy użyć obu obiektów.

Po połączeniu z Moimi dokumentami przy użyciu obiektu FileSystemObject możemy wywołać echo jego rozmiaru używając poniższego wiersza kodu:

Wscript.Echo objFolder.Size

Nie jest to może szczególnie prosty sposób, ale działa. A o to w końcu chodzi.

 Do początku strony Do początku strony


Centrum skryptów - Microsoft Office