Jak uzyskać ścieżkę folderu użytkownika w języku C++? Mój program musi działać w systemach Windows Vista i XP i mają one różne ścieżki temp. Jak mogę to zdobyć bez utraty kompatybilności?Uzyskiwanie ścieżki folderu tymczasowego użytkownika w systemie Windows
Odpowiedz
Czy istnieje powód, dla którego nie można używać funkcji API Win32 GetTempPath?
Ten interfejs API jest dostępny zaczynając W2K i stąd będą dostępne na wszystkich wymienionych celów.
Funkcja GetTempPath pobiera ścieżkę do katalogu przeznaczonego dla plików tymczasowych. Ta funkcja zastępuje funkcję GetTempDrive.
DWORD GetTempPath(
DWORD nBufferLength, // size, in characters, of the buffer
LPTSTR lpBuffer // address of buffer for temp. path
);
Parametry
nBufferLength
określenie wielkości, w postaci, w buforze ciąg zidentyfikowane przez lpBuffer.
lpBuffer
Punkty do bufora strun, która odbiera ciąg NUL określające tymczasową ścieżkę do pliku.
Zwracane wartości
Jeśli funkcja się powiedzie, wartość zwracana jest długość, w znakach, struny skopiowany do lpBuffer, nie licząc kończącego znaku null. Jeśli wartość zwracana jest większa niż nBufferLength, wartość zwracana jest rozmiarem bufora wymaganego do przechowywania ścieżki. Jeśli funkcja nie działa, wartość zwracana wynosi zero. Aby uzyskać rozszerzone informacje o błędach, wywołaj GetLastError.
Uwagi
Funkcja GetTempPath dostaje tymczasowe ścieżki pliku w następujący sposób:
- Ścieżka określona przez zmienną środowiskową TMP.
- Ścieżka określona przez zmienną środowiskową TEMP, jeśli TMP nie jest zdefiniowana.
- Katalog bieżący, jeśli zarówno TMP, jak i TEMP nie są zdefiniowane.
Powinieneś połączyć się z dokumentacją MSDN, a nie kopiować i otwierać zawartość. – JaredPar
Byłbym wdzięczny za informację i link.Problem z linkami polega na tym, że gniją z czasem. –
-1 za brak wskazania, że jest to oferta cenowa, za nie cytowanie źródła oferty oraz wklejanie nieaktualnych informacji. –
GetTempPath nie będzie działać na Vista, chyba że użytkownicy mają dostęp administracyjny. W tej chwili mam problem z jedną z moich aplikacji.
Nie zapewnia to odpowiedzi na pytanie. Aby skrytykować lub poprosić o wyjaśnienie od autora, zostaw komentarz pod swoim postem. –
Użyj funkcji GetTempPath(), aby pobrać ścieżkę do katalogu przeznaczonego dla plików tymczasowych.
wstring TempPath;
wchar_t wcharPath[MAX_PATH];
if (GetTempPathW(MAX_PATH, wcharPath))
TempPath = wcharPath;
#include <iostream>
#include <string>
int main(int argc, char* argv[]){
std::cout << getenv("TEMP") << std::endl;
return 0;
}
- 1. Uzyskiwanie ścieżki pliku z uchwytu pliku w systemie Windows
- 2. Tworzenie tymczasowego folderu w java
- 3. OSX: API do pobierania ścieżki do folderu ~/temp użytkownika
- 4. Uzyskiwanie absolutnej ścieżki do pliku wewnątrz folderu publicznego w Railsach
- 5. Uzyskiwanie pełnej ścieżki do usługi systemu Windows
- 6. Podpisany plik wykonywalny i RequireAdministrator uruchamiany z folderu tymczasowego?
- 7. W szczególności Uzyskiwanie ścieżki systemowej TEMP w języku C#
- 8. Jakie jest znaczenie folderu ProgramData w systemie Windows?
- 9. Monitorowanie folderu pod kątem nowych plików w systemie Windows
- 10. .gitignore nie rozpoznaje symbolu wieloznacznego mojego folderu w systemie Windows
- 11. Znajdowanie "prawdziwego" folderu danych aplikacji użytkownika systemu Windows?
- 12. Twarde ścieżki kodowania w systemie Linux
- 13. Nie można znaleźć części ścieżki w systemie Windows Azure
- 14. Uruchamianie plików ze ścieżki w systemie Windows 10 UWP
- 15. plik dll.config nie został skopiowany do tymczasowego folderu plików asp.net
- 16. Take ostatnią część ścieżki folderu w skorupkach
- 17. Wyszukiwanie tymczasowego przechowywania plików w Javie
- 18. Uzyskiwanie dostępu do ukrytych węzłów w systemie Windows
- 19. Uzyskiwanie klienta Oracle do pracy w systemie Windows 7 RC
- 20. Uzyskiwanie aplikacji ADO VB6 do pracy w systemie Windows 7
- 21. Uzyskiwanie strefy czasowej w systemie Windows za pomocą C++
- 22. Uzyskiwanie ścieżki do katalogu .NET Framework
- 23. Uzyskiwanie kontroli nad nazwą pliku tymczasowego utworzonego w języku Java
- 24. django uzyskiwanie bezwzględnej ścieżki FileField
- 25. Uzyskiwanie "java.nio.file.AccessDeniedException" podczas próby zapisu do folderu
- 26. Jak skonfigurować specyficzny dla użytkownika plik hosts w systemie Windows?
- 27. Jak uzyskać katalog domowy bieżącego użytkownika w systemie Windows?
- 28. Uzyskiwanie trybu dzwonka 0 w C++ (Windows)
- 29. Uzyskiwanie rzeczywistą nazwę pliku (z odpowiednią obudową) w systemie Windows z .NET
- 30. Uzyskiwanie separatora ścieżki platformy za pomocą Boost.Filesystem
Jeśli jesteś zainteresowany tylko w oknach rozwiązań, które należy umieścić w tytule pytanie. –