23 EKİM 2008, PERŞEMBE
Ne'in bir dosya C varsa? kontrol etmek için en iyi yol (çapraz platform)
Sadece dosyayı açmaya çalışırken daha iyi bir yolu var mı?
int exists(const char *fname)
{
FILE *file;
if (file = fopen(fname, "r"))
{
fclose(file);
return 1;
}
return 0;
}
CEVAP
23 EKİM 2008, PERŞEMBE
access()
işlevi, unistd.h
bulunan Yukarı Bak. Eğer işlevi ile değiştirebilirsiniz
if( access( fname, F_OK ) != -1 ) {
// file exists
} else {
// file doesn't exist
}
Ayrıca R_OK
, W_OK
X_OK
yer F_OK
Kontrol için okuma izni, yazma izni ve çalıştırma izni (sırasıyla) yerine, birlikte yaşama, YA da birlikte (yani kontrol için hem de okumaveyazma izni R_OK|W_OK
kullanarak)
GüncellemeWindows, erişim fonksiyonu dikkate DACL almaz beri W_OK
güvenilir yazma izni için test etmek için kullanabilirsiniz unutmayın. access( fname, W_OK )
dosyayı salt okunur özniteliği yoktur, çünkü 0 (başarı) döndürebilir, ama yine de dosyaya yazma izni olmayabilir.
Bunu Paylaş:
Eğer bir dosya C içinde olup olmadığın...
En hızlı dosya ise standart kullanan v...
Nasıl bir dosya belirli bir dize bash ...
Nasıl bir yol mutlak bir yol veya göre...
Ne kadar dosya varsa kontrol etmek içi...