Reklama
Pokazuje wyniki od 1 do 2 z 2

Temat: Programiści torga, wzywam was! Chodzenie po katalogach w systemie, C#

  1. #1
    Avatar piorunek098
    Data rejestracji
    2007
    Posty
    1,090
    Siła reputacji
    18

    Domyślny Programiści torga, wzywam was! Chodzenie po katalogach w systemie, C#

    Witam!

    Piszę właśnie prosty program, ale kurde mam za mało wiedzy. I idei nie mogę załapać. Mam przed sobą aplikacje konsolową w C#. Chcę napisać program, który będzie chodził po wszystkich katalogach na dysku, po wszystkich jakie istnieją (na dysku lokalnym C:). Chce także, żeby nie wchodził do katalogu pulpit. Ew. chcę, żeby wszedł do Documents and Settings (jaka jest ścieżka w win xp?). I przeszedł po wszystkich folderach tam. Da się coś takiego zrobić szybko, łatwo i przyjemnie?

    Aha czy to będzie bardzo obciążało kompa?

  2. #2

    Notoryczny Miotacz Postów Visher jest teraz offline
    Avatar Visher
    Data rejestracji
    2009
    Położenie
    Stalowa Wola.
    Posty
    1,253
    Siła reputacji
    17

    Domyślny

    No to tak.. przede wszystkim najważniejsza rzecz - rekurencja. Funkcja/metoda rekurencyjna, jak to tam się w C# zwie.

    Głównie chodzi o to, aby zrobić taką funkcję która wywołuje samą siebie. W pseudokodzie Twojego zadania:
    Kod :
    Funkcja przeglądaj(katalog)
    Dla każdego pliku [plik] w katalogu katalog:
      jeżeli plik jest katalogiem:
        przeglądaj(plik)
    
        wypisz(plik.nazwa)
    W Javie wyglądało by to tak:
    Kod :
    public void przegladaj(File folder) {
      for (File plik : folder.listFiles()) {
        if (isDirectory(plik))
          przegladaj(plik);
    
        System.out.println(plik.getName());
      }
    }
    Jak to mniej więcej zadziała.. wywołujesz metodę używając, w Javie, przeglądaj(new File("C:")). W C: jest parę katalogów i plików, dajmy na to:
    Windows, Program Files - katalogi
    pagefile.sys - plik

    Iterujemy po każdym pliku w tym katalogu. Na początku napotykamy pagefile.sys jeżeli trafi nam się kolejność alfabetyczna. If się nie spełni, wypisze nazwę.
    Później przychodzi czas na Program Files. On jest katalogiem. Obecne wykonywanie metody przeglądaj() zostaje odłożone w czasie i teraz zaczyna się nowa instancja, tamta istnieje ale jest wstrzymana*. W Program Files znajdą się kolejne katalogi i znowu ta sama sytuacja, wstrzymanie wywołania przeglądaj() dla Program Files i wywołanie dla katalogu Adobe [..].
    W końcu gdzieś będzie koniec tej rekurencji i po wykonaniu wszystkich głębszych rozkazów wróci do tego wstrzymanego Program Files. Ponieważ zrobiło już swoje, wypisze tylko jego nazwę i przejdzie do katalogu Windows [..]

    Tak działa rekurencja w przypadku plików, w C# powinieneś dać sobie radę.

    * - musiał byś się zaznać z mechaniką stosu
    Ostatnio zmieniony przez Visher : 13-01-2013, 23:42

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Torgowi Programiści - Nauka programowania od podstaw
    Przez Killavus w dziale Programowanie
    Odpowiedzi: 106
    Ostatni post: 23-10-2013, 22:48

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •