Autor Wątek: Scieżka do moje dokumenty  (Przeczytany 2410 razy)

Offline perez

  • Użytkownik

# Kwiecień 02, 2008, 09:27:02
Witam!

Jestem tu po raz pierwszy więc witam wszystkich ładnie. Jestem początkującym programista i chciałem dowiedzieć się jak w windowsie sprawdzic ścieżkę do moich dokumentów? Przeszukałem forum ale nic nie znalazłem.
Programuje w Code::Blocks (gcc) z użyciem SDL+OpenGL.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

st3tc

  • Gość
# Kwiecień 02, 2008, 09:40:26
Funkcja SHGetFolderPath  ( shlobj.h )  z  CSIDL równym "CSIDL_PERSONAL".
pzd

Offline vashpan

  • Użytkownik
    • Strona

# Kwiecień 02, 2008, 10:29:57
Albo w ten sposob:

#include <windows.h>
ExpandEnvironmentStrings("%HOMEDRIVE%%HOMEPATH%",buffer,size);

i dalej moje dokumenty

st3tc

  • Gość
# Kwiecień 02, 2008, 11:01:15
Albo w ten sposob:

#include <windows.h>
ExpandEnvironmentStrings("%HOMEDRIVE%%HOMEPATH%",buffer,size);

i dalej moje dokumenty

Tia... a skąd weźmie nazwę katalogu "moich dokumentów" ? :). A może to polska winda, może ang., może duńska, może niemiecka ;) ...

Offline vashpan

  • Użytkownik
    • Strona

# Kwiecień 02, 2008, 12:42:21
Eh no tak... Swoja droga nazwy tych katalogow powinny byc moim zdaniem wspolne dla kazdej wersji jezykowej a jedynie na poziomie powloki zamieniane na "lokalne" wersje. ( wirtualnie )


Offline Xion

  • Redaktor
    • xion.log

# Kwiecień 02, 2008, 13:10:15
Właśnie tak jest w Viście, ale i tak dla przenośności używamy SHGetFolderpath z CSIDL_PERSONAL lub CSIDL_MYDOCUMENTS. Przy okazji: bufor na wynik powinien mieć długość MAX_PATH, bo inaczej (tj. niżej) ryzykujemy jego przepełnienie.

Offline mINA87

  • Użytkownik

# Kwiecień 02, 2008, 13:15:12
Przy okazji: bufor na wynik powinien mieć długość MAX_PATH, bo inaczej (tj. niżej) ryzykujemy jego przepełnienie.
Jaim cudem?
DWORD WINAPI ExpandEnvironmentStrings(
  __in       LPCTSTR lpSrc,
  __out_opt  LPTSTR lpDst,
  __in       DWORD nSize
);

Offline Ventor

  • Użytkownik

# Kwiecień 02, 2008, 13:15:32
Można tez wyciągnąć z rejestru:
HKLM lub HKCU -> Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders -> Personal

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Kwiecień 02, 2008, 13:55:59
Eh no tak... Swoja droga nazwy tych katalogow powinny byc moim zdaniem wspolne dla kazdej wersji jezykowej a jedynie na poziomie powloki zamieniane na "lokalne" wersje. ( wirtualnie )

Jeśli już rozmawiamy o tym, jak POWINNO być... Zawsze C:\docs i wszystkie problemy z głowy ;).

st3tc

  • Gość
# Kwiecień 02, 2008, 15:51:36
Eh no tak... Swoja droga nazwy tych katalogow powinny byc moim zdaniem wspolne dla kazdej wersji jezykowej a jedynie na poziomie powloki zamieniane na "lokalne" wersje. ( wirtualnie )

Jeśli już rozmawiamy o tym, jak POWINNO być... Zawsze C:\docs i wszystkie problemy z głowy ;).

Czasem mam ochotę wykastrować programistę, który napisał soft gdzie mi się na sztywno wpierniczają katalogi na dysk :). A co Złośliwcze jeśli nie działam z uprawnieniami do pisania po C ? ;p. Siostro ! skalpel proszę ! ;) ...

Offline Xion

  • Redaktor
    • xion.log

# Kwiecień 02, 2008, 17:55:34
Przy okazji: bufor na wynik powinien mieć długość MAX_PATH, bo inaczej (tj. niżej) ryzykujemy jego przepełnienie.
Jaim cudem?
DWORD WINAPI ExpandEnvironmentStrings(
  __in       LPCTSTR lpSrc,
  __out_opt  LPTSTR lpDst,
  __in       DWORD nSize
);
Takim że mówiłem o SHGetFolderPath, jak to zapewne zauważyłeś ;-)

Offline perez

  • Użytkownik

# Kwiecień 02, 2008, 19:21:07
Funkcja SHGetFolderPath  ( shlobj.h )  z  CSIDL równym "CSIDL_PERSONAL".
pzd

Dziekuje bardzo, działa.

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Kwiecień 03, 2008, 09:53:31
Ja zawsze przestawiam żeby Moje dokumenty były aliasem do "D:\". Tak więc wersja językowa Windowsa to nie wszystko :)

Offline mINA87

  • Użytkownik

# Kwiecień 03, 2008, 15:55:12
Ja zawsze przestawiam żeby Moje dokumenty były aliasem do "D:\". Tak więc wersja językowa Windowsa to nie wszystko :)
Tak, przypominają mi się rozwiązania promowane na uczelniach/w szkołach gdzie niemal wszystko jest na serwerze i np. Moje Dokumenty są zmapowanym dyskiem sieciowym :]

Xion: sry!! Widziałem funkcję ExpandEnvironmentStrings i nie zauważyłem że mówisz o SHGetFolderPath - stąd zdziwienie :P