Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    168

    [C] Verifica esistenza di un file

    Dovrei verificare se un file esiste o meno.
    Finora ho usato la funzione stat che restituisce -1 se il file non esiste.

    Il mio problema è questo: adesso non so l'estensione del file, perciò vorrei conoscere l'esistenza a prescindere dall'estensione.

    Ho provato a passare a stat il percorso nei seguenti modi:
    - nomefile
    - nomefile*
    - nomefile.*
    il problema è che in tutti e tre i casi (immagino che quello corretto sia il terzo, ma dovevo pur provare!!) la funzione restituisce -1 nonostante il file esista.

    Come potrei fare? Grazie in anticipo!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    168
    E aggiungerei anche un'altra domanda: una volta verificata l'esistenza del file senza indicare l'estensione, è possibile conoscere l'estensione del file stesso?

  3. #3
    Utente di HTML.it L'avatar di infinitejustice
    Registrato dal
    Nov 2001
    residenza
    Barcelona
    Messaggi
    772
    Cosa succederebbe se esistessero allo stesso tempo nomefile.ext1, nomefile.ext2, nomefile.extn? E se invece facessi un listato del contenuto della directory?
    Live fast. Troll hard.
    Pythonist | Djangonaut | Puppeteer | DevOps | OpenStacker | Lost in malloc
    Team Lead @Gameloft Barcelona

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    168
    mmm non so se potrebbe fare al caso mio perché a me interessa solo verificare se esiste un file di cui però non conosco l'estensione e qualora esistesse conoscere la sua estensione.

    Però in effetti mi hai fatta ragionare: non dovrebbe succedere, però qualora ci fossero due file con uguale nome ma diversa estensione sarebbe comunque un problema, perciò mi sa che dovrò trovare un'altra via!

  5. #5
    stat (e praticamente qualunque altra funzione che opera su file), vuole un nome di file ben definito, ovvero non effettua il globbing. Se vuoi cercare i file che corrispondono ad un pattern o ti fai dare tutti i file contenuti in una directory (usando readdir() & co.) e controlli, oppure usi direttamente glob() con il tuo pattern.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    168
    oooook proverò ad usare readdir() e a controllare successivamente! Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.