Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Ipossibile cancellare una cartella
martedì 14 ottobre 2014 - 10.09
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
.NET 3.5
|
Visual Studio 2008
|
SQL Server 2008 R2
saritron
Profilo
| Newbie
25
messaggi | Data Invio:
mar 14 ott 2014 - 10:09
Salve a tutti sottopongo al forum un problema che mi sta assillando da diversi giorni e di cui non trovo soluzioni.
Sto creando un DTSX che in pratica prende da una cartella dei file pdf e li incorpora nel DB in un campo BLOB, dopo questo, si pongono i file in una cartella Storico e successivamente si cancella la cartella che conteneva i file.
Sono riuscito a inserire nel DB i file, ho creato la cartella storico, ho spostato i pdf nello storico, cancello l'eventuale file ini che trovo nella cartella e cancello la cartella.
A questo punto vi è una eccezione che mi dice che non posso cancellare la cartella.
Vi assicuro che non ci sono file neanche nascosti e ho i requisiti per cancellare la cartella, sono arrivato anche forzare i privilegi ma non ottengo risultati, da un controllo che ho fatto in debug mi segnala un processo che è attivo nella cartella, ma non mi dice quale, conoscete un metodo che mi consenta di intercettare il processo e evntualmente killarlo?
Non posso killarli tutti ovviamente e non riesco a capire che processo possa bloccare la cartella.
Sono andato a ritroso sugli altri script del dtsx e ho fatto attenzione a chiudere tutti i processi che si attivano sulla cartella ma non ottengo risultati.
Avete qualche soluzione?
Vi allego quanto scritto
String cart_canc = Dts.Variables["PathLocale"].Value.ToString() + "\\" + nomecart;
//****Cancellazione della Cartella superiore
//cancellazione dell'eventuale file desktop.ini
String ini = Dts.Variables["PathLocale"].Value.ToString() + "\\" + nomecart + "\\desktop.ini";
if (File.Exists(ini))
{
//cancellazione file ini
File.Delete(ini);
}
//controllo se ci sono files nella cartella********sostituisci cartcanc da qui!!
String[] txtFiles = Directory.GetFiles(Dts.Variables["PathLocale"].Value.ToString() + "\\" + nomecart);
if (txtFiles.Length==0)
{
//modifico gli attribbuti di sicurezza
DirectorySecurity DS = new DirectorySecurity(Dts.Variables["PathLocale"].Value.ToString() + "\\" + nomecart, AccessControlSections.All);
DS.SetAccessRule(new System.Security.AccessControl.FileSystemAccessRule("SYSTEM", System.Security.AccessControl.FileSystemRights.FullControl, System.Security.AccessControl.AccessControlType.Allow));//utente "BNLFSVIL\\p.debonis
Directory.SetAccessControl(Dts.Variables["PathLocale"].Value.ToString() + "\\" + nomecart, DS);
//cancello la cartella
Directory.Delete(Dts.Variables["PathLocale"].Value.ToString() + "\\" + nomecart,true);//qui parte l'eccezione
messaggio dell'eccezione: ex.Message = "Access to the path 'E:\\.....\\FTP\\Temp\\4464' is denied."
Grazie dell'eventuale aiuto
Ultimora: era un problema di come di creava la cartella che conteneva i pdf risolto...
Ma per interesse accademico mi piacerebbe sapere se esiste qualche metodo per intercettare i processi afferenti una cartella.
Ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !