Odczyt praw dostępu realizujemy, analogicznie jak w przypadku innych atrybutów pliku, poprzez metode get_attribute_boolean z klasy Gio::FileInfo przekazujać w parametrze ciąg znaków z nazwą atrybutu który nas interesuje.
W przypadku praw dostępu do pliku będzie to access::can-rename, access::can-delete, access::can-trash, access::can-read, access:can-write, access::can-execute oznaczające kolejno prawo do zmiany nazwy pliku, usunięcia, przeniesienia do kosza, odczytu z pliku, zapisu do pliku i uruchomienia. Wartość zwrócona przez tą metode odpowiada danemu prawu do pliku użytkownika który uruchomił aplikacje.
Przykład aplikacji sprawadzącej prawa dostępu do pliku z ścieżki podanej w prametrze…
#include <iostream.h>
#include <giomm.h>
int main(int argc, char *argv[]) {
Gio::init ();
if (argc <= 1) {
std::cout << "Niepodano pliku...\n";
return -1;
}
Glib::RefPtr<Gio::File> f = Gio::File::create_for_path (argv[1]);
if (f)
{
Glib::RefPtr<Gio::FileInfo> info = f->query_info ();
std::cout << "Mogę zmieniać nazwe ? \t" << info->get_attribute_boolean ("access::can-rename") << std::endl;
std::cout << "Mogę usunąć ? \t" << info->get_attribute_boolean ("access::can-delete") << std::endl;
std::cout << "Mogę przenieść do kosza ?\t" << info->get_attribute_boolean ("access::can-trash") << std::endl;
std::cout << "Mogę odczytać zawartość ?\t" << info->get_attribute_boolean ("access::can-read") << std::endl;
std::cout << "Mogę zapisywać do pliku ?\t" << info->get_attribute_boolean ("access:can-write") << std::endl;
std::cout << "Mogę wykonywać plik ? \t" << info->get_attribute_boolean ("access::can-execute") << std::endl;
}
return 0;
}
Kompilacja:
g++ `pkg-config giomm-2.4 –cflags –libs`

0 Odpowiedzi do “FAQ: Odczyt praw dosępu do pliku w giomm”