Zapis na dysku – kwestia uprawnień i pobrania ścieżek katalogów

0

Czy trzeba mieć dostęp upoważniony do zapisu na dysku C: w katalogu users/bieżący użytkownik i jaką ścieżkę użyć żeby tam zapisać ?

0

zadaj pytanie jeszcze raz, ale w taki sposób, żeby dało się zrozumieć, o co Ci chodzi...

0

domyślnie zwykły user nie może zapisywać na C:\ (a konkretniej to na partycji systemowej). Ścieżka do moich dokumentów https://www.google.pl/search?q=delphi+get+user+documents+folder

1

Tzn. może zapisywać w niektórych katalogach, np. w katalogu ustawień lokalnych dla bieżącego użytkownika, do czego nie są potrzebne uprawnienia administratora.

piter2004 napisał(a):

[…] i jaką ścieżkę użyć żeby tam zapisać ?

Ścieżki do systemowych katalogów zawsze pobiera się za pomocą konkretnych funkcji z API systemu. Dla systemów od Vista wzwyż jest funkcja SHGetKnownFolderPath, dla starszych jest SHGetSpecialFolderPath.

0

@piter2004 - Widzę, że trochę poprawiłeś swój post, teraz jest ciut lepiej ;)

Odnośnie ścieżek do "specjalnych" katalogów - rzuć okiem tutaj: http://delphiprogrammingdiary.blogspot.com/2017/08/how-to-get-windows-special-directories.html

A co do kwestii uprawnień - fajnie, jakbyś podał, o jakiego Windowsa chodzi. Im wyższa wersja, tym mocniej dba o bezpieczeństwo (tudzież rzuca programiście więcej kłód pod nogi). Ewentualnie możesz po prostu poeksperymentować i zobaczyć, czy da Ci się pisać w tych lokalizacjach, których potrzebujesz.

I jeszcze taka uwaga - nie używaj lepiej pojęcia "dysk C" ale raczej "dysk systemowy". To, że w większości przypadków ludzie instalują system na C: nie oznacza, że tak musi być. https://stackoverflow.com/questions/810273/how-can-i-get-the-system-drive-letter

2

Jedyne słuszne rozwiązanie (dla nowych Delphi)
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.IOUtils.TPath.GetHomePath
Oczywiście rekord TPath pozwala pobrać też inne ścieżki ma też funkcje pozwalające manipulować nimi.
Co do uprawnień jeżeli chodzi od folder bieżącego użytkownika (lub jeden z podfolderów) raczej nie powinno być problemów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1