Toon posts:

[ASP.NET] directory acces via netwerk

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

ik probeer het volgende uit te voeren


if(!Directory.Exists("\\\\<companyname>\\root\\projecten\\test\\blaat\\"))
{
Directory.CreateDirectory("\\\\<companyname>\\root\\projecten\\test\\blaat");
}

De check wordt uitgevoerd, maar als de directory gecreerd gaat worden gaat het fout. Ik krijg de error

Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path "\\<companyname>\root".

Waarschijnlijk heeft dit dus met rechten te maken omdat wel gekeken wordt of de directory bestaat, maar aanmaken mag niet. Onze .NET goeroe wist het ook niet op te lossen dus ik zit een beetje met m'n handen in het haar.

Ik heb instellingen aan m'n webje gewijzigd. Geen anonymous acces, basic authentication, integrated windows authentication. Ik heb alles geprobeerd. De application protection staat op 'high'.

Heeft iemand een id wat dit kan zijn of heeft iemand ergens wat info over dit onderwerp gelezen? Ik hoor het graag, alle hulp is welkom!

ps. <companyname> is in het echt dus een bedrijfsnaam...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06-09 09:41

gorgi_19

Kruimeltjes zijn weer op :9

Volgens mij zit je een beetje te mixen tussen VB.NET en C#
Directory.Createdirectory is vrij VB achtig; het gedeelte met dubbele slashes komt weer uit C#.

Ik heb een voorbeeldje gevonden in de documentatie van het .NET Framework. Heb je daar al gezocht?
Example
To create the directory C:\Users\User1\Public\Html when the current directory is C:\Users\User1, use any of the following calls to ensure that the backslash is interpreted properly.

In Visual Basic:

Directory.CreateDirectory("Public\Html")
Directory.CreateDirectory("\Users\User1\Public\Html")
Directory.CreateDirectory("c:\Users\User1\Public\Html")
In C# or C++:

Directory::CreateDirectory("Public\\Html");
Directory::CreateDirectory("\\Users\\User1\\Public\\Html");
Directory::CreateDirectory("c:\\Users\\User1\\Public\\Html");

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
ehm...

"Directory::CreateDirectory("Public\\Html");" is volgens mij echt geen C#.

Als ik in m'n Visual Studio .NET netjes "Directory" type en een punt intik, krijg ik een mooi popupje met alle methods van het object.

Als ik daarentegen een ":" gebruik gebeurd er niets. ":" heeft echt niets met C# te maken...

tnx aniehoe

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06-09 09:41

gorgi_19

Kruimeltjes zijn weer op :9

Geen idee of het C# is of niet... Ik kom echt uit de VB hoek. Ik heb alleen een voorbeeld uit de help gecopy-pasted...;) Ik kon me namelijk niet herinneren dat ik dubbele slashes ooit heb moeten gebruiken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
de dubbele slash is bedoeld om de slash te escapen, daarom staan er altijd 2x zoveel, 1 x het teken zelf, de andere keer de escape van de slash

maar goed, gloof dat niemand het antwoord echt weet... :(

  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
werkt het wel als je een drivemapping maakt ?

Verwijderd

Topicstarter
Op vrijdag 07 juni 2002 20:02 schreef gotcha het volgende:
werkt het wel als je een drivemapping maakt ?
Nee, dat is niet mogelijk en ook niet gewenst eigenlijk.

Het heeft zeer waarschijnlijk met security te maken aangezien ik in de 1e regel wel mag kijken of de directory wel of niet bestaat, maar mag niets aanmaken.

Ik heb dus geen idee waar ik zou moeten kijken...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 06-09 09:41

gorgi_19

Kruimeltjes zijn weer op :9

Nog een laatste poging:

Ik heb het volgende script uitgeprobeerd en bij mij aan de praat gekregen:
code:
1
2
3
4
5
6
using System.IO;

<knip>

DirectoryInfo dir = new DirectoryInfo("\\\\<computernaam>\\<sharenaam>\\directorynaam");
dir.Create();

Als de directory al bestaat, wordt er niets mee gedaan, zo niet, dan wordt het overschreven.
Wel moeten alle shares goed ingesteld zijn, schijf gedeeld (ook voor ASPNET-user), etc.

Nog een verzoekje: Zou je voortaan in een post ook de taal er bij kunnen zetten (VB.NET, C#, JScript, etc.)? Meerdere wegen leiden in dit geval naar Rome (of ASP.NET)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Als je een @ voor een string zet hoef je \'s niet meer te escapen, da's verdomd handig voor paden :). Dit lijkt me veel duidelijker.
code:
1
DirectoryInfo dir = new DirectoryInfo(@"\\<computernaam>\<sharenaam>\directorynaam");

Maar volgens mij moet je wel kunnen opvragen welke rechten je hebt met .Net. Zelf heb ik dit nooit gedaan, maar het lijkt me dat op www.gotdotnet.com hier wel iets over moet staan...
Pagina: 1