Benutzer mit den meisten Antworten
Wie Verzeichnis des Benutzers und nicht ein Unterverzeichnis davon herausfinden?

Frage
-
Hallo,
wenn ich Environment.GetFolderPath so aufrufe
strUserPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
bekomme ich C:\Users\MarkusS\Documents.
Ich will aber C:\Users\MarkusS eine Ebene höher mit einer Anweisung bekommen. (Und jetzt nicht Documents per Code aus dem String entfernen.)
Wie mache ich das?
Und wie heissen die Unterverzeichnisse der ersten Ebene auf C:\Users eigentlich richtig?
Das Verzeichnis des Benutzers XYZ?
Antworten
-
Hallo Markus,
über
Dim userFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) ' oder auch Dim userProfile = Environment.GetEnvironmentVariable("USERPROFILE")
Man sollte jedoch nicht davon ausgehen, darunter die untergeordneten Verzeichnisse zu finden,
denn es gibt Möglichkeiten die Verzeichnisse zu verlegen. Auch hat das Benutzerprofil hat sich
im Laufe der Windows Versionen häufiger gewandelt und seinen Stammplatz gewechselt:Siehe User Profile Structure (und Vista/Windows 7 hat weiter nachgelegt).
Gruß Elmar
- Als Antwort markiert Markus222 Montag, 21. Mai 2012 09:28
-
Hallo Markus,
wichtiger wäre, welche Framework Version Dein Programm verwendet.
SpecialFolder.UserProfile (uam.) gibt es erst ab .NET Framework 4.0, bei 3.5 und früher noch nicht,
siehe http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspxDort vergleiche die einzelnen Versionen.
Die Environment Variable gibt es bereits länger (und wird vom Betriebssystem gesetzt).
Gruß Elmar
- Bearbeitet Elmar BoyeEditor Montag, 21. Mai 2012 10:13
- Als Antwort markiert Markus222 Montag, 21. Mai 2012 12:03
-
Hallo Markus,
ne, da hatte ich wohl den falschen Namen in der Zwischenablage :) Die Frage war auf dein Posting bezogen.
Danke für die VS Infos. Wichtig wäre aber, welchen Projekttyp Du verwendest. Denn wenn UserProfile nicht in der Auflistung enthalten ist, arbeitest Du IMHO nicht in einem normalen VB Winforms/WPF Projekt.
Bist Du sicher, dass die obige Angabe stimmt? Das .NET Framework in Version 4.5 ist als RTM noch gar nicht verfügbar. Zudem ist deine Visual Studio Installation nicht auf dem aktuellsten Stand. SP 1 und nachfolgende Patches solltest Du dringend mal installieren.
Und falls Du unter Windows 8 Consumer Preview arbeiten solltest: Da kann es gut sein, dass einiges/vieles nicht funktioniert.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Montag, 21. Mai 2012 10:28
- Als Antwort markiert Markus222 Montag, 21. Mai 2012 12:03
Alle Antworten
-
Hallo Markus,
über
Dim userFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) ' oder auch Dim userProfile = Environment.GetEnvironmentVariable("USERPROFILE")
Man sollte jedoch nicht davon ausgehen, darunter die untergeordneten Verzeichnisse zu finden,
denn es gibt Möglichkeiten die Verzeichnisse zu verlegen. Auch hat das Benutzerprofil hat sich
im Laufe der Windows Versionen häufiger gewandelt und seinen Stammplatz gewechselt:Siehe User Profile Structure (und Vista/Windows 7 hat weiter nachgelegt).
Gruß Elmar
- Als Antwort markiert Markus222 Montag, 21. Mai 2012 09:28
-
Hallo Markus,
das dürfte dann wohl das hier sein:
Environment.GetFolderPath( Environment.SpecialFolder.UserProfile )
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Elmar, hallo Stefan,
Der Wert UserProfile wird bei mir in der Environment.SpecialFolder Auflistung nicht angezeigt. In der VB-Hilfe ist davon jedoch die Rede.
Dim userFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
führt zu
Error 10 'UserProfile' is not a member of 'System.Environment.SpecialFolder'.
Dim userProfile = Environment.GetEnvironmentVariable("USERPROFILE") funktioniert. Danke!
Habe dann noch folgendes gefunden.
Dim environmentVariables As IDictionary = Environment.GetEnvironmentVariables()
Man kann damit schön sehen welche Strings in GetEnvironmentVariable welche Informationen zurückgeben.
- Bearbeitet Markus222 Montag, 21. Mai 2012 09:27
-
Hallo Markus,
welche .NET Version verwendest Du da mit welcher Technologie?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Montag, 21. Mai 2012 10:10 falsche Anrede
-
Hallo Stefan,
falls die Antwort nicht doch auf eine andere Frage bezogen ist (wegen Hans-J.) so ergibt aufrufen von Help - About Microsoft Visual Studio - Copy Info (neben vielem anderem)
Microsoft Visual Studio 2010
Version 10.0.30319.1 RTMRel
Microsoft .NET Framework
Version 4.5.50131 RTMRel
Installed Version: Professional
Microsoft Visual Basic 2010 01018-532-2002102-70742
Microsoft Visual Basic 2010
-
Hallo Markus,
wichtiger wäre, welche Framework Version Dein Programm verwendet.
SpecialFolder.UserProfile (uam.) gibt es erst ab .NET Framework 4.0, bei 3.5 und früher noch nicht,
siehe http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspxDort vergleiche die einzelnen Versionen.
Die Environment Variable gibt es bereits länger (und wird vom Betriebssystem gesetzt).
Gruß Elmar
- Bearbeitet Elmar BoyeEditor Montag, 21. Mai 2012 10:13
- Als Antwort markiert Markus222 Montag, 21. Mai 2012 12:03
-
Hallo Markus,
ne, da hatte ich wohl den falschen Namen in der Zwischenablage :) Die Frage war auf dein Posting bezogen.
Danke für die VS Infos. Wichtig wäre aber, welchen Projekttyp Du verwendest. Denn wenn UserProfile nicht in der Auflistung enthalten ist, arbeitest Du IMHO nicht in einem normalen VB Winforms/WPF Projekt.
Bist Du sicher, dass die obige Angabe stimmt? Das .NET Framework in Version 4.5 ist als RTM noch gar nicht verfügbar. Zudem ist deine Visual Studio Installation nicht auf dem aktuellsten Stand. SP 1 und nachfolgende Patches solltest Du dringend mal installieren.
Und falls Du unter Windows 8 Consumer Preview arbeiten solltest: Da kann es gut sein, dass einiges/vieles nicht funktioniert.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Montag, 21. Mai 2012 10:28
- Als Antwort markiert Markus222 Montag, 21. Mai 2012 12:03
-
Hallo Elmar,
vielen Dank. Das war es.
Möchte jetzt diese Computerzeitbegrenzung schreiben. Da ich gelesen habe das .Net 3.5 bereits bei Windows 7 standardmässig dabei ist habe ich das als TargetFramework ausgewählt. Bei Änderung auf 4.0 geht das mit der Auflistung. Ist viel schöner und komfortabler als mit dem String.
-
Hallo Stefan,
es sind die Projekttypen Windows Forms Application, Class Library und Windows Service.
.Net Framework 4.5 wird in About Microssoft Visual Studio oben rechts angezeigt.
Die wurde mit der Visual Studio 11 Professional Beta mitinstalliert. Ich kann das aber als TargetFramework nur in der Beta selbst auswählen.
Sehr gefallen hat mir die Benutzeroberfläche in der Beta. Wenn man unter Tools - Options - Environment - General - Color theme - Dark auswählt.
Die einfache und doch oder gerade deswegen so wohltuende Erscheinungsweise. Die die Augen beruhigt.Verwende Windows 7. Die Windows 8 Consumer Preview habe ich mir mal angeschaut...
Mit Verlaub, empfand das Ding als Zumutung für Benutzer von Desktop- und Laptop Computern. Viel zu viele Mausbewegungen und Clicks notwendig. Viel zu grosse Schaltflächen. Auf dem Desktop fehlt das Startmenu. Anstatt dem wird man auf diese NoComment...
-
Stefan Falz schrieb:
> Zudem ist deine Visual Studio Installation nicht auf dem
> aktuellsten Stand. SP 1 und nachfolgende Patches solltest Du
> dringend mal installieren.
Hab's glatt überlesen. Mach ich. Danke. (Wie geht Installieren der nachfolgenden Patches?)
Hatte in der VB-Hilfe zu Environment.SpecialFolder Enumeration nachgesehen. Dort in der Liste ist kein Hinweis auf die Framework Version. Selbst wär ich da nicht drauf gekommen.
Das eben die .Net Framework Versionen (die SPs und Patches) auch Detailänderungen (hoffen wir Verbesserungen) in Sachen wie diesen enthalten.
Und nicht nur die "grossen" Features.