Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Jak sprawdzić czy ścieżka istnieje
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004
Jak sprawdzić czy ścieżka istnieje

Witam

Otóż samo sprawdzenie jest banalne ale jest jeden problem:

Otóż mam powiedzmy katalog "C:\Windows" - no i sprawdzam czy scieżka istnieje - jakaś tam funkcja czy to Dir czy PathFileExists czy PathIsDirectory - funkcje zwracają, że istnieje.

I Teraz tak: zmieniam literę "W" na "w" (oczywiście w eksploratorze) i ponownie sprawdzam czy sieżka "C:\Windows" istnieje - czy jest jakaś funkcja, która rozróżnia wielkości liter w ścieżce i zwróciłaby mi, że ścieżka nie istnieje ??


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

26-02-2005 17:09
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

hmmm...

Nic nie rozumiem...

Dla podanych przez Ciebie funkcji nie ma znaczenia wielkość liter - i bardzo dobrze!

A jakie to ma dla Ciebie znaczenie i co chcesz przez to rozróżnianie osiągnąć?


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

26-02-2005 21:16
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Otóż ma znaczenie bo powiedzmy że mam kontrolkę Listview która mi wyświetla zawartość katalogu i gdy użytkownik w eksploratorze zmieni jedną literę w nazwie pliku np. z małej na dużą. muszę jakoś odświeżyć zawartość katalogu i najlepiej to odświeżać po nazwach plików. Poprostu chcę zapewnić pewnego rodzaju synchronizację mojego programu z tym co się dzieje w około - chyba ze ma ktoś inny pomysł na odświeżanie zawartości kontrolki - sposób aby wyczyśćić zawartosć i jeszcze raz załadawać odpada


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

27-02-2005 00:36
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Ja też nie rozumiem..

Przecież Dir ma rozróżnienie na małe i duże litery - możesz go użyć...


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

27-02-2005 05:05
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

To odświeżaj - co określony czas - zawartość tylko aktywnego katalogu.
Użyj, jak już podał Ci Marcin funkcji Dir().
I po sprawie!


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

27-02-2005 10:46
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Jak ma jak nie ma - nie rozróżnia wielkości liter np.

Dir("c:\Windows\" zwróci to samo co

Dir("c:\WiNdOwS\"

a w drugim przypadku powinien zwrócić "" bo taki katalog nie istnieje tzn. istnieje ale inaczej napisany.

W sumie problem już rozwiązałem, kontrolka Listview różróżnia wielkość liter gdy każdej pozycji przypisujemy klucz

P.S. Napisałem że odświeżanie typu "usuń - dodaj" odpada bo przy dużej ilośći plików długo to trwa.


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

27-02-2005 11:35
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

C:Windows
i
C:WiNdOwS
i
c:WIndoWs
i
C:winDoWs

To dokładnie ten sam katalog - Windows nie odróżnia wielkości liter. Tak samo jak funkcja Dir. Cokolwiek wpiszesz zwróci nazwę w takiej formie, w jakiej aktualnie jest. Jeśli więc sprawdzisz:
Dir("c:windows" ), a użytkownik przedtem zmieni nazwę na  "WinDoWs" to otrzymasz "WinDoWs".

[Post edytowany dnia 27-02-2005 13:06 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

27-02-2005 13:05
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Funkcja Dir nie zwraca nazwy katalogu tylko piewszy znaleziony plik o_O

Ale nieważne już sobie poradziłem


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

27-02-2005 13:09
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

A jeśli tym plikiem będzie katalog, to zwróci nazwę katalogu -_-



ok


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

27-02-2005 14:08
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

No właśnie, jak wylistujesz zawratość aktywnego aktalogu, to odświeżysz wszystkie pliki i ich nazwy!

To samo będzie, jak wylistujesz zawartość katalogu nadrzędnego... Wtedy też uzyskasz wszystkie katalogi i pliki...

Do ...
  sDir = Dir()
Loop ...

sDir zwróci Ci:
C:\Windows
lub
C:\windows
lub
C:\WiNdOwS


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

27-02-2005 19:13
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Tylko że jak w katalogu będę miał kilka tysiecy plików a na dodatek jak komp będzie wolny to zwolni mi to program

Temat zamknięty wystarczy wykorzystać stałą:

Const WM_SHNOTIFY = &H401

i Subclassing.

Pozdrawiam

[Post edytowany dnia 28-02-2005 00:49 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

28-02-2005 00:49
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Powiadamianie to też w sumie jest jakieś rozwiazanie. Pewnie lepsze, niż sprawdzanie ścieżek. Ale gdyby się uprzeć i pisać w czystym VB, to nadal można to rozsądnie zrobić. Przecież jednocześnie w ListBoxie nie masz nigdy wyświetlonych kilku tysięcy plików. Co najwyżej kilkanaście.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

28-02-2005 10:39
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

No tyle że trzeba się przygotować na przypadki ekstremalne - tak się składa że ja mam takie katalogi, w których jest o kilka tysięcy plików

Metoda, którą podałem jest najlepszą metodą (tak mi się wydaje) bo powiadamia o wszystkim - nawet o tym że został dodany (usunięty) dysk, zmiany na pulpicie, w katalogach wirtualnych, ogólnie każdą zmianę w Shell'u.

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

28-02-2005 12:36
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Też uważam, że Notify to najlepszy albo przynajmniej jeden z najlepszych  sposobów.

Ale nadal nie rozumiesz, o czym mówię z Dir. Chodzi mi o to, by odświerzać TYLKO to, co widać aktualnie w Listboxie - tyle wystarczy, a zwykle to kilkanaście pozycji


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

28-02-2005 15:12
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Hmmm - korzystam z Listview a nie Listbox'a chociaż to nie ma znaczenie.

U mnie Listview pokazuje kilkaset pozycji

Wiem - myślałeś że mówię o katalogach, których zawartości nie ma na liście ale mi chodzi właśnie tylko o to co zawiera Listview.

Nawet nie pomyślałbym żeby odświeżać coś czego nie ma na liście

Pozdrawiam

[Post edytowany dnia 28-02-2005 16:14 przez DJK]


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

28-02-2005 16:12
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Wszystkich odpowiedzi: 14 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1