Directory.Exists = false

mercoledì 18 febbraio 2009 - 14.54

Gluck74 Profilo | Guru

Salve,
Sto facendo una piccola applicazione che deve leggere dei file da una cartella specificata.
al momento che faccio if (Directory.Exists(sPath)) mi restituisce sempre false.
Il problema credo sia perché la cartella è in rete e non ho ancora fatto l'autenticazione.

Come posso risolvere questo problema? sono nuovo in .Net e non so come si fa l'autenticazione.

ciao grazie

rossimarko Profilo | Guru

Ciao,

se devi accedere a dei path di rete ti consiglio di far girare il tuo sito con un utente che abbia accesso a quel path.

Puoi farlo inserendo nel web.config il tag identity: http://msdn.microsoft.com/en-us/library/72wdk8cc.aspx
oppure se usi iis 6 associando un utente all'applicationpool che fa girare l'applicazione
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

Gluck74 Profilo | Guru

ok, grazie del consiglio, ma ho scoperto una cosa:
non è un discorso di credenziali, ma mi da errore in qualsiasi caso.
Ho provato anche a fare dei test con la semplice "c:\prova" e non va. sembra che gli dia noia "\", perché con "C:" funziona.

Non so più dove sbattere la testa

rossimarko Profilo | Guru

In che senso con c: funziona?

Il path come lo imposti? Stai usando c#?
usi una cosa del tipo:
string strPath = @"c:\prova.txt" ?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

Gluck74 Profilo | Guru

SI, sto usando c#.
scusa ma mi sono sbagliato, non funziona neppure "C:"
Ovvero, qualsiasi striga gli passo alla funzione("C:", @"C:\", "C:\\", ecc.. ecc), sia che la scrivo direttamente come parametro, sia che la scrivo dentro una variabile, la funzione restituisce sempre false.

che devo fare?

rossimarko Profilo | Guru

A te un esempio di questo tipo cosa ti ritorna?

System.IO.Directory.Exists(@"C:\windows")

PS: parto dal presupposto che la cartella windows esista
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

Gluck74 Profilo | Guru

Ok, trovato l'inghippo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Il progetto girava da un driver (u:\) mappato su una cartella di rete. Sicuramente non gli piaceva venire a vedere i file della macchina (C:\ ecc..).
a questo punto mi viene in mente che dovrei in qualche modo autenticarmi.
Come si fa?????

rossimarko Profilo | Guru

Ma la tua è un'applicazione web o windows?
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

Gluck74 Profilo | Guru

sto facendo delle prove su win, ma dovrà lavorare sul server IIS. Esiste una cartella di rete sul server che non ha accesso per l'utente web, ma dal sito si inseriscono nome e password per accederci. Però devo autenticare l'accesso alla cartella e non so come fare

rossimarko Profilo | Guru

Qui dovresti trovare la risposta alla tua domanda: http://support.microsoft.com/?id=306158

Ci sono due sezioni a seconda dell'esigenza:
Impersonate the Authenticating User in Code
Impersonate a Specific User in Code
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5