Il dit que le formulaire contient déjà une définition pour "Nom d'utilisateur" P>
3 Réponses :
Un meilleur moyen de le faire serait:
string EncrFolder = $@"c:\Users\{userName}\Desktop\Encryption\";
s'est débarrassé de la chaîne et utilisé cela à la place: String Encrolder = $ @ "C: \ users \ {environnement.Asername} \ Desktop \ cryptage \";
Je ne sais pas comment utiliser la pile overflow que j'ai essayé de +1 et il a fait -1
Le problème de base avec votre code est qu'il vous manque l'appel à string.format code>, qui correspond à la méthode qui remplacera les éléments dans les espaces réservés avec les chaînes de la liste des arguments:
"c:\Users\rufusl\Desktop\Encryption\"
Même si vous n'avez pas déplacé le dossier, le dossier est parfois créé comme nom d'utilisateur.domain code> lorsque
nom d'utilisateur code> existe déjà pour un utilisateur local par ce nom. Ceci est souvent observé pour les comptes administrateurs. Une autre raison d'utiliser
environnement.gefolderPath code>.
Vous pouvez vérifier en utilisant $ ou string.format
exemple: p> ou p>
La deuxième erreur semble que vous avez déjà une variable nommée
nom d'utilisateur code> dans votre portée.
La syntaxe correcte est
chaîne encrolder = string.format (@ "c: \ users \ \ {0} \ dektop \ cryption \", nom d'utilisateur); code> ou
corde Encrolder = $ @ "C: \ Utilisateurs \ {nom_utilisateur} \ Desktop \ cryptage \ "; code>
Utilisez
chemin.combine code> - Vous devez simplement utiliser les dossiers spéciaux.
Vous pouvez utiliser une variable d'environnement aussi
String Encrolder = Environnement.Expandenvironmentvariables ("% UserProfile% \\ Deskt Op") Code> ou même mieux
Environnement.GetFolderPath (Environnement.Specialfolder.desktop) Code >
Nom d'utilisateur = System.Security.Principal.windowSidentity.getCurrent (). Nom;