Powiel możliwe:
What’s the best way to check if a file exists in C? (cross platform)C, sprawdź, czy plik istnieje bez możliwości odczytu/zapisu?
chciałbym sprawdzić, czy plik istnieje, czy nie. Zmieniłem uprawnienia mojego pliku testowego na "chmod -r somefile". Jednak teraz mówi, że plik nie istnieje, mimo że istnieje.
Zakładam więc, że jeśli nie mam uprawnień do odczytu, nie mogę otworzyć pliku z "fopen r". Ale to oznaczałoby, że nie ma łatwego sposobu na stwierdzenie, czy plik istnieje, czy nie można go odczytać/napisać?
A może czegoś brakuje? Każda pomoc byłaby świetna.
Dzięki!
int doesFileExist(const char* filename)
{
FILE* fptr = fopen(filename, "r");
if (fptr != NULL)
{
fclose(fptr);
printf("File exists\n");
return 1;
}
printf("File doesnt exist\n");
return 0;
}
Aktualizacja: Dzięki chłopaki za te świetne linki i objaśnienia!
Um .. Czy można sprawdzić 'errno'? EDYCJA: spróbuj tego, aby uzyskać komunikat o błędzie: 'printf (" Plik nie istnieje:% s \ n ", strerror (errno));' nie zapomnij dołączyć nagłówka 'errno.h'. – Jack
Tego właśnie nie lubię w przypadku stdio API, gdy trzeba zrobić coś nietuzinkowego, np. Zmienić rozmiar pliku lub przenieść plik bez kopiowania go i usuwania starego, nie ma szczęścia pod względem przenośności. – Thomas