È possibile ottenere un nome file o il relativo percorso da un oggetto fstream
? Ho esaminato i metodi di fstream
e non ho trovato nulla di simile.Ottenere nomefile (o percorso) da fstream
risposta
No, ciò non è possibile, non almeno nell'attuazione conforme standard della libreria.
La classe fstream non memorizza il nome file e non fornisce alcuna funzione per il recupero.
Quindi un modo per tenere traccia di queste informazioni è quello di utilizzare std::map
come:
std::map<std::fstream*, std::string> stream_file_table;
void f()
{
//when you open a file, do this:
std::fstream file("somefile.txt");
stream_file_table[&file] = "somefile.txt"; //store the filename
//..
g(file);
}
void g(std::fstream & file)
{
std::string filename = stream_file_table[&file]; //get the filename
//...
}
Oppure, semplicemente passare intorno al nome del file pure.
Questo va bene, solo tu dovrai dire che il nome deve essere rimosso una volta che gli oggetti fstream vengono distrutti ... –
Si può anche progettare una piccola classe che eredita da fstream
e si comporta come un fstream
ma memorizza anche il nome del file.
Questo ti permette anche di aggiungere un comodo costruttore prendendo un 'std :: string', che è richiesto in C++ 11 ma di solito non è presente nelle implementazioni di C++ 03. –
- 1. Come ottenere il percorso completo semplicemente dando il nomefile?
- 2. Notepad ++: come ottenere nomefile/percorso del file corrente e inserirlo negli appunti nel blocco note più
- 3. Per i file nella directory, solo echo nomefile (nessun percorso)
- 4. Come funziona fstream? Memoria o file?
- 5. Come ottenere il componente percorso/directory da un NSURL?
- 6. Controlla se un fstream è un file o una directory
- 7. Ottieni percorso UNC da un percorso locale o percorso mappato
- 8. Creazione oggetto fstream da un puntatore FILE *
- 9. ASP.NET MVC Ottenere file da percorso virtuale
- 10. std :: file fstream oltre 2gb
- 11. Come ottenere il percorso originale da FileStream
- 12. Ottenere un flusso da un percorso assoluto?
- 13. Rimuovere i caratteri non validi (non consentiti, non validi) da NomeFile (o Directory, Cartella, File)
- 14. Errore fstream in C++
- 15. ifstream e ofstream o fstream using in e out
- 16. Recupero descrittore di file da uno std :: fstream
- 17. nomefile tab-completion in Cmd.cmd di Python
- 18. Log4J2 - assegnazione file nomefile appender al runtime
- 19. Come posso ottenere l'URL o il percorso corrente in TWIG?
- 20. Copia i dati da fstream a stringstream senza buffer?
- 21. Ottieni la directory da un percorso file o dall'URL
- 22. Escludi nomefile specifico dalla shell globbing
- 23. Come ottenere il nome della cartella da un percorso
- 24. Argomento della riga comandi Winform che restituisce il nomefile eseguibile
- 25. fstream seekg(), seekp() e write()
- 26. std :: fstream non crea file
- 27. Come restituire un fstream (C++ 0x)
- 28. Come ottenere la stringa del percorso da un java.nio.Path?
- 29. ho bisogno di chiudere uno std :: fstream?
- 30. Ottenere il percorso del file da un'immagine in ImageView
Non credo sia possibile. Il file sottostante può avere diversi nomi (se ha più collegamenti fisici) o nessun nome (se rappresenta una pipe anonima, per esempio). –