PDA

Visualizza la versione completa : C dirent.h su Windows?


DarthSandr
04-02-2013, 16:25
Salve a tutti ho un progetto in C su Visual Studio 2005 e vorrei utilizzare le funzioni di gestione delle directories che ho usato in un altro progetto su LINUX.
Per farlo dovrei includere <dirent.h> ma se lo faccio nel progetto Visual Studio mi da un errore dicendo che dirent non esiste.
Come posso fare?
Il progetto è settato per essere compilato come codice C e non C++ quindi non voglio usare cose come FindFirstFile che, mi pare, sia per C++.
C'è un dannato modo per includere un umile dirent.h in un progetto C per Wiondows? :dhò: :bhò:

Adoro sempre di più java............. :facepalm:

Ciao e grazie
Sandro

oregon
04-02-2013, 16:39
Le API non sono per C++ (anzi) ...

Il fatto è che con Windows si usano quelle API per la gestione delle cartelle.

DarthSandr
04-02-2013, 16:42
Ok, grazie

DarthSandr
04-02-2013, 17:32
Ancora una cosa.
Sto provando le funzioni FindNextFile e funzionano.
Non riesco però a capire come gestire le stringhe.
Mi spiego.
Se scrivo:


fprintf(f, "%s \n", find.cFileName)

mi scrive solo il primo carattere del nome del file o della cartella.

Idem se faccio


strcmp(find.cFileName, "nome file");

il confronto funziona solo se in "nome file" metto solo la prima lettera.

Da buon javista nostalgico dell'intramontabile String come diamine faccio a gestire il nome del file?

find è di tipo WIN32_FIND_DATA

Grazie ancora
Sandro

oregon
04-02-2013, 18:14
La domanda è ... non è che stai lavorando in Unicode ?


P.S. Se devi fare il programma in C non pensare ad ogni passo a Java ... non è produttivo ...

DarthSandr
05-02-2013, 08:50
Originariamente inviato da oregon
La domanda è ... non è che stai lavorando in Unicode ?



mmm, da dove lo capisco? Ho semplicemente creato un progetto Win32 dal wizard di Visual Studio 2008 e poi ho implementato la funzione per testare la gestione delle cartelle.

DarthSandr
05-02-2013, 09:52
Effettivamente, guardando nelle proprietà del progetto in Command Line vedo che c'è /D "_UNICODE" /D "UNICODE" può essere quindi che utilizzo UNICODE (o meglio, Visual Studio lo ha messo di default, io non ho impostato nulla a riguardo nel wizard di creazione del progetto).

oregon
05-02-2013, 10:05
Di default lavori con UNICODE.

Progetto -> Proprietà

e nella pagina delle Proprietà di configurazione cambia il Set di caratteri.

DarthSandr
05-02-2013, 10:13
Originariamente inviato da oregon
Di default lavori con UNICODE.

Progetto -> Proprietà

e nella pagina delle Proprietà di configurazione cambia il Set di caratteri.

Adesso funziona!
Grazie

Ci sarebbe un modo per ottenere lo stesso risultato con UNICODE?

oregon
05-02-2013, 12:44
Devi usare le funzioni apposite ... leggi questo

http://msdn.microsoft.com/en-us/library/vstudio/e0z9k731.aspx

Loading