Ipossibile cancellare una cartella

martedì 14 ottobre 2014 - 10.09
Tag Elenco Tags  C#  |  .NET 3.5  |  Visual Studio 2008  |  SQL Server 2008 R2

saritron Profilo | Newbie

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
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5