webForumDet fria alternativet

Finns filen?

C/C++ur C/C++

5 svar · 322 visningar · startad av msossna

Medlem sedan feb. 2002476 inlägg
Frågan#1

Finns det något enkelt sätt att kolla om en fil finns på? Just nu försöker jag öppna filen och misslyckas det antar jag att filen inte finns, men det verkar onödigt att behöva öppna filen...

Medlem sedan juni 200010 432 inlägg
#2

Det enklaste man kan göra ifall man bara ska öppna filen, är att kolla så att filhandtaget inte är null när man försökt öppna filen.
Exempel i C:

FILE *ptr;
...
...
if((ptr=fopen("blaha","r"))==NULL){
     // ptr är inget giltigt filhandtag
    ...
} else
    // ptr är ett giltigt filhandtag
   ...
Medlem sedan feb. 2002476 inlägg
#3

Jag vill inte öppna filen... Tycker det verkar onödigt, ska bara kolla om filen finns.

Medlem sedan juni 20022 599 inlägg
#4

Tycker det verkar onödigt

Att öppna en fil är väl i sig ingen oerhört tung grej. Vad du däremot behöver fråga dig är om filens eventuella icke-existens är den enda tänkbara anledningen till att operativet vägrar lämna över ett giltigt handtag?

Det kan ju också vara så att filen finns men du inte får öppna den. Misstänker att du får använda lite OS-beroende anrop typ GetLastError eller annat för att ta reda på det.

Medlem sedan feb. 2002476 inlägg
#5

Det räcker dock att få veta att filen inte går öpnna... Varför spelar ingen roll...

Medlem sedan juni 20022 599 inlägg
#6

OK. Men då svarar du egentligen på din egen fråga. Om du vill veta om en fil går att öppna (och inte om den finns) så borde det enklaste och mest plattformsoberoende sättet vara att försöka öppna den och se vad som händer?

139 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)