Vai al contenuto



Foto

[python] Driveinfo


  • Per favore accedi per rispondere
13 risposte a questa discussione

#1 OFFLINE   memoryn70

memoryn70

    Millennium Member

  • Developer
  • 2117 messaggi
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 30 maggio 2008 - 18:47

DriveInfo pyd module per pyS60 by Memory
News: aggiunto supporto 3rd/5th edition

Ecco un modulo per cercare informazioni sui drives!
E' il mio primo modulo scritto in C++ e di sicuro ne so praticamente pochissimo ma girando qua e là prendendo spunto da altri moduli (KeyPress e sysinfo) e grazie all'aiuto di Dokkis per risolvere alcuni errori di compilazione, sono riuscito a fare questo piccolo modulo.
Compilato per FP3 non sono sicuro se va anche negli altri...se magari qualcuno prova mi fa un piacere!
EDIT: ho provato sul mio vecchio 3650 e va benissimo pure li B)

Versione: 0.3

Funzionalità:

-total_drivespace() #Dizionario con grandezza totale drive
-drive_names() #dizionario con nomi drives (quella che si imposta sulla MMC ad esempio)
-drives_uid() #ID univoco del drive (come UID: hex(drives_uid()[0]) ad esempio)
-drives_fs() #Nome filesystem
Per intepretare i valori ottenuti dalle funzioni di seguito, bisogna fare ad esempio: valore_ottenuto&EMediaFormattable.Ovviamente EMediaFormattable non si può usare in python ma in seguito posto tutti i valori possibili da utilizzare per interpretare i valori.
-drive_type() # Tipo drive: Flash, HDD , Rom...
-drives_attr() #Attributi drives: formattatile, estraibile ecc...
-medias_attr() #Attributi volume

Esempio:
import DriveInfo #Mantenere questa forma

sizes=DriveInfo.total_drivespace()
names=DriveInfo.drive_names()
print sizes[u'C:']
print names[u'E:']

EDIT:

Di seguito elencati i valori di type ecc...
type_names=["Non presente","Sconosciuto","Floppy","Hard Disk (MMC)","CD-Rom","Ram Drive","Flash","Rom","Remoto"]
		  media_attr=[0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80]
		  media_attr_names=["Dimensione variabile","Doppia densita'","Formattabile","Sola lettura","Bloccabile","Bloccato","Ha una password","Legge mentre scrive"]
		  drive_attr=[0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80]
		  drive_attr_names=["Locale","Rom","Rediretta","Virtuale","Interna","Removibile","Remota","Transazione"]
			attr=DriveInfo.drives_attr()[drive]
			vol_attr=DriveInfo.medias_attr()[drive]
			for n in drive_attr:
				if attr&n: print drive_attr_names[drive_attr.index(n)]
			for n in media_attr:
				if vol_attr&n: print media_attr_names[media_attr.index(n)]


Ciao !!

Download file


Messaggio modificato da memoryn70, 27 aprile 2009 - 16:56


#2 OFFLINE   memoryn70

memoryn70

    Millennium Member

  • Developer
  • 2117 messaggi
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 10 giugno 2008 - 12:59

Nuova Versione!! B)

#3 OFFLINE   memoryn70

memoryn70

    Millennium Member

  • Developer
  • 2117 messaggi
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 23 aprile 2009 - 17:17

Mi hanno chiesto la versione per 3rd edition...
madhacker se ti passo i sorgenti me lo compili? Dovrebbe non avere funzioni strane...

#4 OFFLINE   madhacker

madhacker

    Senior Member

  • Utente
  • StellettaStellettaStellettaStellettaStelletta
  • 527 messaggi
  • Cellulare:N95-2,5800

Inviato 23 aprile 2009 - 17:25

certo, perchè no.
passami tutto l'occorrente dove ritieni più opportuno.

#5 OFFLINE   memoryn70

memoryn70

    Millennium Member

  • Developer
  • 2117 messaggi
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 24 aprile 2009 - 17:06

Ecco il sorgente...vedi un po se riesci a compilarlo!

Grazie :lol:

Download file

  • Allega file  src.zip   4,21K   22 downloads


#6 OFFLINE   madhacker

madhacker

    Senior Member

  • Utente
  • StellettaStellettaStellettaStellettaStelletta
  • 527 messaggi
  • Cellulare:N95-2,5800

Inviato 24 aprile 2009 - 18:21

eccolo
dovrebbe essere funzionante per tutti i v3 e v5. domattina lo provo anche sul 5800 ^_^
lo puoi mettere tranquillamente al primo post.
ciau

Download file



#7 OFFLINE   aaping

aaping

    Newbie

  • Utente
  • Stelletta
  • 6 messaggi

Inviato 24 aprile 2009 - 21:31

Thanks...

#8 OFFLINE   aaping

aaping

    Newbie

  • Utente
  • Stelletta
  • 6 messaggi

Inviato 25 aprile 2009 - 03:06

Hi, the fileutils.pyd can compile to S60v3?

#9 OFFLINE   memoryn70

memoryn70

    Millennium Member

  • Developer
  • 2117 messaggi
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 26 aprile 2009 - 09:47

Hi, the fileutils.pyd can compile to S60v3?


Yes! Why not! I'll ask to madhacker :P

#10 OFFLINE   madhacker

madhacker

    Senior Member

  • Utente
  • StellettaStellettaStellettaStellettaStelletta
  • 527 messaggi
  • Cellulare:N95-2,5800

Inviato 27 aprile 2009 - 14:58

funziona anche per v5 :huh:

#11 OFFLINE   memoryn70

memoryn70

    Millennium Member

  • Developer
  • 2117 messaggi
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 27 aprile 2009 - 16:57

funziona anche per v5 :P


Perfetto! Passo in avanti verso WinFile 3rd editon :)
ot: ma per curiosità esiste anche sui 5th edition il problema dei certificati ecc...o la nokia ha tolto tutto??

#12 OFFLINE   madhacker

madhacker

    Senior Member

  • Utente
  • StellettaStellettaStellettaStellettaStelletta
  • 527 messaggi
  • Cellulare:N95-2,5800

Inviato 27 aprile 2009 - 20:27

se intendi il fatto di dover certificare quasi tutte le applicazioni, la risposta è si. ovviamente le applicazioni a pagamento sono esenti da certificazione, in quanto vengono rilasciate già certificate, come ad esempio guardian per v3 e v5.

ps: ho in progetto 2 librerie (solo per v3 per ora) che credo siano mooolto utili ai pythoniani :)

#13 OFFLINE   madhacker

madhacker

    Senior Member

  • Utente
  • StellettaStellettaStellettaStellettaStelletta
  • 527 messaggi
  • Cellulare:N95-2,5800

Inviato 18 giugno 2009 - 10:33

ciao memory, riapro questa discussione in quanto mi sono permesso di modificare leggermente i tuoi sorgenti, poichè avevo riscontrato un errore.
l'errore avviene (o meglio, avveniva) nelle funzioni total_drivespace e free_drivespace. se c'è un drive superiore a 1GB la funzione, per quel drive, restituiva il più grande numero intero ma negativo, così ho modificato i sorgenti facendo in modo che venga stampato, anzicchè l'intero, il numero in formato unicode. per chi è abituato a lavorare con la tua libreria con il formato intero può convertire l'unicode così:
eval(DriveInfo.free_drivespace()[0]) # 0 sta per il primo drive stampato

Download file



#14 OFFLINE   memoryn70

memoryn70

    Millennium Member

  • Developer
  • 2117 messaggi
  • Cellulare:Nokia N70
  • Firmware:5.0609.2.0.1

Inviato 18 giugno 2009 - 10:43

ciao memory, riapro questa discussione in quanto mi sono permesso di modificare leggermente i tuoi sorgenti, poichè avevo riscontrato un errore.
l'errore avviene (o meglio, avveniva) nelle funzioni total_drivespace e free_drivespace. se c'è un drive superiore a 1GB la funzione, per quel drive, restituiva il più grande numero intero ma negativo, così ho modificato i sorgenti facendo in modo che venga stampato, anzicchè l'intero, il numero in formato unicode. per chi è abituato a lavorare con la tua libreria con il formato intero può convertire l'unicode così:

eval(DriveInfo.free_drivespace()[0]) # 0 sta per il primo drive stampato


Ah ottimo! Ma non si potrebbe mettere il valore numerico? Sai in WinFile dovrei cambiare molte cose...Magari usa abs