Sprawdzenie czy istnieje katalog

0

Witam

Mam problem ze sprawdzeniem czy dany katalog lub wymagany plik w tym katalogu istnieje. Wiem jak zrobić to sprawdzenie ale tylko jeśli otworzę dany plik, mi chodzi o to żeby nie otwierać pliku tylko sprawdzić czy jest w katalogu, albo nawet czy katalog istnieje.

Pozdr

0

jest taka funkcja w "unistd.h" która nazywa się access:

#include <unistd.h>

int access(const char *pathname, int mode);

add:

przyklad:

#include <stdio.h>
#include <unistd.h>

int main(int argc, char * argv[]) {
    if (argc!=2) printf("Nie podano argumentow wykonania!\nPrawidlowe wywolanie: %s plik/katalog\n", argv[0]);
    else {
        if (access(argv[1], F_OK) != 0)
            printf("%s: nie istnieje!\n", argv[1]);
        else printf("%s: istnieje!\n", argv[1]);
    }
    return 0;
}
0

Dzieki za szybka odpowiedz ale jakos nie przemawia do mnie ta funkcja.
Czy moglbys troszke wyjasnic o co w niej konkretnie chodzi, chociazby access i F_OK
z czym to sie je

Pozdr

0

funkcja access (const char * sciezka, int tryb); znajduje się w bibliotece unistd.h i przyjmuje dwa argumenty z czego pierwszy to ścieżka do katalogu bądź pliku który chcemy sprawdzić, a drugi to tryb czyli to co chcemy sprawdzić. W bibliotece unistd.h są zdefiniowane następujące tryby:
R_OK - test na możliwość odczytywania pliku
W_OK - test na możliwość zapisu pliku
E_OK - test na mozliwość wykonania pliku
i F_OK - test na to czy istnieje katalog lub plik
funckja access(sciezka, tryp); zwraca wartość typu integer i jeżeli wykona się poprawnie (czyli test zakończy się sukcesem) zwróci 0, a jeżeli niepoprawnie (czyli test się nie powiedzie) zwróci -1.

więc jeżeli chcesz sprawdzić czy dany katalog lub plik istnieje wpisujesz warunek:

if (access(sciezka_do_pliku_katalogu, F_OK) == 0) {
 // jeżeli plik istnieje to funkcja access zwróci 0 i instrukcje w warunku sie wykonają
} 

</b>

0

Dzięki piękne
działa teraz jak należy

Pozdr

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