PDA

Visualizza la versione completa : [C++] Verificare se un disco in un'unitÓ Ŕ disponibile


Xaratroom
25-06-2007, 20:57
Ciao a tutti ...
Vorrrei sapere come si pu˛ controllare se un disco Ŕ stato inserito in un'unitÓ:
ossia il mio problema Ŕ che in fase di lettura di un file da floppy, se il floppy non Ŕ presente viene visualizzato il classico messaggio di windows ...
Per ovviare a questo problema vorrei prima verificare se il floppy Ŕ stato inserito e poi leggerne il contenuto ...
Sapete come si fa ?
Grazie ...
PS: sto lavorando su windows con gcc :ciauz:

Samuele_70
25-06-2007, 21:11
Credo non sia possibile rilevare il solo inserimento/disinserimento del disco. :(

Xaratroom
25-06-2007, 21:25
Grazie della risposta ...
Non mi sono spiegato bene: intendevo controllare se un floppy Ŕ inserito nel momento in cui serve e, se non inserito, continuare comunque ad eseguire il programma :zizi:

oregon
25-06-2007, 22:00
Scusami ... come stai accedendo ai file su disco ?

Xaratroom
25-06-2007, 22:05
Con le classi standard del cpp :

ifstream file ("A:\file.dat", ios::in);
if (!file)
...
else
...

Includendo naturalmente fstream

EDIT:

PS: Se il floppy Ŕ inserito l'operazione va a buon fine

oregon
25-06-2007, 22:19
Ho provato con Visual Studio e con DevCpp e non ho avuto alcun messaggio in caso di fallimento ...

P.S. Naturalmente il file deve essere "A:\\file.dat"

Xaratroom
25-06-2007, 22:21
:confused:
Strano ...
Hai provato ad eseguire il programma senza floppy ?

oregon
25-06-2007, 22:24
Non ho installato neanche il drive ! Ed ho provato con il lettore di CD (senza il CD) e con un drive inesistente ...

Xaratroom
25-06-2007, 22:33
Strano :


#include <windows.h>
#include <fstream>

int STDCALL
WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
while (1)
{
ifstream file ("A:\\Session.dat", ios::in);
if (!file)
MessageBox(NULL,"Errore","File assente !!",MB_ICONSTOP);
file.close ();
Sleep (6000);
}
return 0;
}

Stesso problema su riportato ...
Dite che Ŕ un problema che riguarda il mio pc ?

EDIT:
Ho provato con un drive inesistente ... funziona

Xaratroom
26-06-2007, 09:38
Questa mattina ho ricompilato ....
Funziona :confused:

Loading