|
ASP umożliwia dostęp do plików, katalogów oraz dysków poprzez obiekt FileSystemObject. Poprzez ten obiekt można tworzyć inne obiekty, tj. File, Folder lub Drive, które określają pliki, katalogi lub dyski komputera lokalnego. Obiekty FileSystemObject i File dostarczają metod i właściwości umożliwiających tworzenie obiektów TextStream, które określają pliki wejściowe i wyjściowe. Pliki tekstowe modą zastąpić bazę danych w przypadkach gdy będzie potrzeba przechowywania niewielkiej ilości danych. Dostęp do pliku tekstowego Obiekt TextSream dostarcza niezbędnych metod i właściwości umożliwiających odczytywanie i zapisywanie informacji do pliku tekstowego. Metody obiektu TextStream są następujące:
zaś właściwości:
Poniższy skrypt ASP demonstruje użycie podstawowych metod oraz właściwości obiektu TextStream. Skrypt otwiera plik C:plik.txt lub w przypadku, gdy nie istnieje, tworzy go. Następnie dodawany jest napis "To zostało napisane" oraz data tego wpisu, po czym plik jest zamykany. W dalszej części plik jest otwierany, odczytywana i wyświetlana jego zawartość, a następnie plik jest zamykany. Kod: asp
<% @LANGUAGE = VBScript %> ‘ Dołączenie tekstu do pliku ‘ Odczytanie zawartości pliku Set objTextStream = Nothing W liniach 5-7 deklarowane są stałe obiektu FileSystemObject. W linii 8 znajduje się deklaracja zmiennych użytych w skrypcie. W linii 11 tworzony jest obiekt FileSystemObject i przechowywany w zmiennej objFS. W liniach 12-16 sprawdzane jest czy plik o podanej nazwie istnieje poprzez wywołanie metody FileExists. Otwierany jest plik C:plik.txt lub w przypadku gdy on nie istnieje, zostaje utworzony. Linia 13 Kod: asp
Set objTextS = objFS.OpenTextFile("C:plik.txt", doDopisu, False, TristateFalse) otwiera plik C:plik.txt (pierwszy parametr) poprzez wywołanie metody OpenTextFile. Metoda posiada następujące parametry:
Odnośnik do otwartego pliku jest przechowywany jako TextStream w zmiennej objTextStream (instrukcja Set). Komenda w linii 15 tworzy plik tekstowy C:plik.txt, jeśli taki nie istnieje. Parametry metody CreateTextFile są następujące:
Linie 12-16 można zastąpić pojedynczą linią, wyglądającą następująco: Kod: asp
Set objTextStream = objFS.OpenTextFile("C:plik.txt", doDopisu, True, TristateFalse) Powyższa instrukcja automatycznie tworzy plik C:plik.txt przed jego otwarciem, jeśli taki jeszcze nie istnieje (trzeci parametr). W linii 17 do pliku dopisywany jest tekst zakończony przejściem do następnej linii (metoda WriteLine). Treść tekstu jest następująca: "To zostało napisane" oraz data pobrana w momencie dopisywania tego tekstu. Instrukcja w linii 18 zamyka obiekt TextStream, gdyż wywołana została metoda Close obiektu. Odczytanie właściwości dysku W celu pobrania informacji o dysku należy posłużyć się obiektem Drive, który zawiera w swoich właściwościach informacje na temat wszystkich zamontowanych na serwerze napędów dyskowych. Obiekt posiada 11 właściwości i nie posiada żadnej metody. Poniżej przedstawiony skrypt ASP odczytuje wszystkie właściwości napędu, na którym sam się znajduje i wyświetla je w oknie przeglądarki. Kod: asp
<% @LANGUAGE = VBScript %> Set objFS = Server.CreateObject("Scripting.FileSystemObject") R = "Właściwości napędu " & strDriveName & "<BR>" If objDrive.IsReady = True Then Response.Write R Set objDrive = Nothing W liniach 4-7 zostały zdefiniowane stałe użyte w skrypcie, zaś deklaracja zmiennych w liniach 8-9. W linii 11 został stworzony obiekt FileSystemObject, niezbędny w celu utworzenia obiektu Drive. W linii 12 zmiennej strFile została przypisana wartość zmiennej środowiskowej SCRIPT_NAME. Od tej pory zmienna strFile zawiera wirtualną ścieżkę do bieżącego skryptu. W linii 13 następuje odczytanie fizycznej ścieżki przez wykorzystanie zmiennej strFile oraz metody MapPath. W linii 14 nazwa dysku, na którym znajduje się skrypt, jest przypisana do zmiennej strDriveName za pomocą metody GetDriveName obiektu FileSystemObject. Obiekt Drive jest utworzony w linii 15 przez wywołanie metody GetDrive obiektu FileSystemObject i przechowywany w zmiennej objDrive. W liniach 17-41 następuje zapisanie wszystkich informacji dotyczących bieżącego dysku (obiektu Drive) do zmiennej R w postaci łańcucha. Każda właściwość obiektu Drive została omówiona już w skrypcie więc nie ma potrzeby do tego wracać. Linia 43 wysyła do przeglądarki (klienta) zawartość zmiennej R. W liniach 45-46 następuje zwolnienie zasobów serwera przeznaczonych dla obiektów objDrive oraz objFS. Wykonywanie operacji na katalogach W celu dokonywania jakichkolwiek operacji na katalogach należ posłużyć się obiektem Folder. Za pomocą jego metod można przenosić, kopiować oraz kasować katalogi. Można także utworzyć plik tekstowy używając metody CreateTextFile obiektu Folder. Kod: asp
<% @LANGUAGE = VBScript %> Function SprawdzKatalogi(ByRef objKatalog, ByVal glebokosc) ‘ Początek programu głównego strVirtualRoot = Server.MapPath("/") SprawdzKatalogi objRootFolder, 1 Set objRootFolder = Nothing Powyższy skrypt zawiera dwie funkcje (linie 7-26) oraz część główną skryptu (28-38). W części głównej znajduje się deklaracja zmiennych (linia 29) oraz tworzone są obiekty FileSystemObject i Folder. Wywołanie funkcji SprawdzKatalogi z parametrami znajduje się w linii 35. Wywołanie funkcji z parametrami może przyjąć także postać: Kod: asp
SprawdzKatalogi(objRootFolder, 1) Funkcja za chwilę będzie omawiana. Ostatni fragment części głównej zwalnia zasoby serwera zajmowane przez obiekty objRootFolder i objFS. Funkcja Akapit(glebokosc) zwraca łańcuch z pozycją (odstępem obrazującym wizualnie lokalizację) pliku lub katalogu. Parametrem wejściowym jest glebokosc, który zawiera pozycję (głębokość) pliku lub katalogu. Przypisanie wartości zwrotnej funkcji znajduje się w linii 12. Instrukcja informująca o końcu funkcji znajduje się w linii 13. Funkcja SprawdzKatalogi(ByRef objKatalog, ByVal glebokosc) pełni rolę procedury, gdyż nie zwraca wartości.
W dalszej części, linia 22, zmiennej i przypisywana jest wartość łańcucha zwróconego przez funkcję Akapit z parametrem wejściowym równym poziomowi (głębokości) bieżącego katalogu. W liniach 23-25 znajduje się kolejna pętla For Each, która wyświetla nazwy wszystkich plików znajdujących się w bieżącym katalogu. Linia 24 informuje o zakończeniu funkcji SprawdzKatalogi. Funkcja SprawdzKatalogi jest funkcją rekurencyjną i jej działanie jest trochę złożone. Poniższa funkcja (PokazBiezacyKatalog) mogłaby zastąpić funkcję SprawdzKatalogi w przypadku, gdyby należało wyświetlić informacje tylko na temat bieżącego katalogu, bez wglądu w strukturę wewnętrzną podkatalogów. Funkcja PokazBiezacyKatalog nie posiada parametru wejściowego określającego poziom (głębokość) umieszczonych plików oraz podkatalogów, nie jest funkcją rekurencyjną, gdyż nie wywołuje się sama z kodu wewnętrznego.
Kod: asp
Function PokazBiezacyKatalog(ByRef objKatalog) Przenoszenie, kopiowanie i kasowanie plików i katalogów Obiekt FileSystemObject dostarcza metod umożliwiających przenoszenie, kopiowanie oraz kasowanie plików i folderów. Oto one:
Autor: Krzysztof Stelmach
Skomentuj
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||




