FOR EACH item IN Variabili.cDir
IF Variabili.azione = "rm -f" THEN
IF NOT canc THEN
SELECT Message.Warning("Cancello ?", "OK", "Annulla")
CASE 1
canc = TRUE
END SELECT
ENDIF
IF canc THEN
hproces= SHELL "rm -rfv " & Chr(34) & item & Chr(34) FOR INPUT OUTPUT AS errori"
ripeti:
if hproces.state=1 then
goto ripeti
wait
endif
NEXT
guarda un' pò se qualcosa del genere può funzionare
Oppure puoi direzionare l'output da sistema su un file, e poi leggerlo da gambas:
IF canc THEN SHELL "rm -rfv " & Chr(34) & item & Chr(34) & " >> Errori.log 2>&1"
Il file "Errori.log" lo leggi con un "var=File.Read()", e analizzi la stringa all'interno di Gambas.
I caratteri ">>" accodano tutti i messaggi e gli errori al file, se scegli di analizzarne uno alla volta, sostituisci ">>" con ">".
FOR EACH item IN Variabili.cDir
IF Variabili.azione = "rm -f" THEN
IF NOT canc THEN
SELECT Message.Warning("Cancello ?", "OK", "Annulla")
CASE 1
canc = TRUE
END SELECT
ENDIF
IF canc THEN
errori= SHELL "rm -rfv " & Chr(34) & item & Chr(34) FOR READ WRITE AS "errori"
endif
ripeti:
if errori.state=1 then
goto ripeti
wait
endif
NEXT
prova cosi allora e vediamo come va! :-P
hei è bellissimo! :cappello:
complimenti!!
lo sto provando e mi piace proprio..
però mi capita un errore quando voglio aprire una cartella dalla finestra di destra.
io ho cerretto questa riga
Variabili.dimensione = Variabili.dimensione + Format((Stat(file).Size / 1024) / 1024, "####.##")
così
Variabili.dimensione = Variabili.dimensione + val(Format((Stat(file).Size / 1024) / 1024, "####.##"))
non ho msn mi spiace (msn????????? :evil: ) :-)
si si ho visto, mi fa piacere esserti stato di aiuto :-)
se posso permettermi ti indico alcuni bug
cerca di generalizzare il piu possibile il programma se poi intendi renderlo pubblico, ad esempio il pulsante per visualizzare le cartelle dei vari dischi punta su "/mnt" mentre su debian il percorso e "/media".
perchè il pulsante della home punta a "/root" e non alla mia home?
hai già provato a creare un eseguibile?
molto probabilmente non funzionerebbe a causa di passi come questo:
caricando = file.Load(Application.Path &/ "Componenti/history/thumb")
infatti funziona tutto finche utilizzi l'ide di gambas ma creando l' eseguibile
i tuoi file non saranno in quel percorso ma all'interno dell' eseguibile stesso,
questo non vale per le immagini che le puoi caricare con
immagine1=picture.load("/filesystem/device.png")
stesso discorso per eseguibili esterni tipo mrxvt
io ho risolto in questo modo nei miei programmini:
all' avvio controllo se il mio programma è gia stato lanciato altre volte
if not exist (user.home & "/.explorer") then
mkdir (user.home & "/explorer")
...... comandi per copiare i vari componenti nelle varie cartelle
esempio:
COPY " /dati/componenti/programmi/mrxvt" TO user.home & /.explorer/dati/componenti/programmi
.....
endif
........il resto del tuo codice
inoltre per quanto riguarda programmi tipo mrxvt dovrai anche renderli eseguibili con il comando chmod altrimenti non verranno lanciati da shell e exec
(il codice che ho scritto puo avere errori di sintassi inquanto scritto a memoria e non tramite gambas )
mi raccomando non offenderti per queste puntualizzazioni .... :-)
ti ripeto che hai fatto veramente un ottimo lavoro
i miei sono solo consigli che lasciano il tempo che trovano
ciao ciao