FAQ: Odczyt praw dosępu do pliku w giomm

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”



  1. Nie ma jeszcze komentarzy

Dodaj komentarz