Newsgroup: it.comp.programmare.win32
Titolo: Come eliminare una cartella ???

E' assurdo, siamo nel 2004 e ancora non si capisce come si puo' eliminare
una cartella da programma.
Se una cartella è piena, si deve eliminare i file interni, .. e ci sono.
Se una cartella è vuota, usando
RemoveDir(NOME)
non funzia.
Ho provato anche con qualche altra funzione, ma niente.
Ho provato anche a selezionare una cartella diversa con
SetCurrentDir(CartellaPrincipale) e poi
RemoveDir(NOME), ma niente ....
Come devo fare ???
E' assurdo !!!
Ciao e grazie

se magari metti il codice che non funziona...sarebbe qualcosa di utile...

 ha scritto nel messaggio
news:RFIsc.334040$rM4.13...@news4.tin.it...


 E' assurdo !!!
Prova così: prendi questo programma qui sotto lo compili e leggi l'errore
che ti dà, così magari si capisce il motivo per cui non funziona. Ma in che
linguaggio programmi, Visual Basic?
-8<-------------------------------------------------------
#include <windows.h>
#include <stdio.h>
void main (void)
{
 BOOL bReturn;
 DWORD dwError;
 bReturn = RemoveDirectory ("cartella");
 if (!bReturn) {
  dwError = GetLastError ();
  printf ("Errore %d in RemoveDirectory",dwError);
  getchar ();
 }
}
-8<-------------------------------------------------------
-- 
/* Costantino Grana                                */
main(int c,char**o){char*s=c?"+L7?+;:7?+:OKIK+9?;9=;"
":+9?;:<:;+9?;;;:;+9<:;<::;+RLJ;K9+":1[o],t,a=!c,m;do
for (m=*s-'0',t=a?m/c:m%c;m>>7?c=1<<m+8,!a&&puts(&a)*
*&a:t--;printf("  \0/*"+a));while ((a^=3)||a[++s]);;}
/* Original code due to Chris Brown... impressive! */

RemoveDir("C:\Pluto");          // XXX Non mi cancella la cartella !!
e cosi ? 
RemoveDir("C:\\Pluto");          

 non funzia.
Premetto che non ho Win a portata di mano per cui non posso
provare, ma prova ad utilizzare la funzione "SHFileOperation" (o un nume
del genere), dovrebbe fare tutto da sola compreso la finestrella con
l'animazione del foglio che vola nel cestino.
 
-- 
~~~~Slaine Mc Roth~~~~
**Linux User# 312607**
Quella sera avevo una limousine talmente lunga che arrivai all'ingresso
mezz'ora dopo l'autista.  (Ratman)

"Slaine Mc Roth" <gildegam...@CICCIOinwind.it> ha scritto nel
messaggio news:pan.2004.05.25....@indirizzo.falso.com...

Dovrebbe essere:
SHFILEOPSTRUCT shfo;
ZeroMemory($shfo, sizeof(SHFILEOPSTRUCT));
shfo.hwnd = hDlg;  // O null se il tuo programma non ha finestre
shfo.wFunc = FO_DELETE; // La funzione da eseguire tra: in questo caso
cancellazione
// FOF_NOERRORUI evita che se si verifica qualche errore compaiano finestre
di messaggio
// FOF_SILENT fa si che l'operazione avvenga senza mostrare mai messaggi
// FOF_NOCONFIRMATION risponde si a tutte le eventuali domande
shfo.fFlags = FOF_NOERRORUI | FOF_SILENT | FOF_NOCONFIRMATION;
shfo.pFrom = _T("c:\\directrorydacancellare\0");
int iReturnCodce = SHFileOperation(&shfo);

 Grazie.

-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 int iReturnCodce = SHFileOperation(&shfo);
Esatto. Se non ricordo male c'era anche un "FOF_ALLOWUNDO" (o similare)
che permetteva di decidere se il file/cartella era da spostare nel cestino
o da eliminare definitivamente.
-- 
~~~~Slaine Mc Roth~~~~
**Linux User# 312607**
L'anima non e' un vaso da riempire ma un fuoco da alimentare.  (Plutarco)

> RemoveDir("C:\\Pluto");  // con 2 sbarra e non una.
Sorry ... era un mio esempio banale da postare .... la vera cartella è in un
AnsiString e quindi è sempre con 2 \.
Grazie.

 AnsiString e quindi è sempre con 2 .
1) perché non provi a vedere l'errore che restituisce GetLastError?? (come
ti è già stato suggerito fra l'altro...)
2) che c'entra l'AnsiString? sei sicuro che la variabile contenga il nome
corretto della directory?
