C# - réglage défini par l'utilisateur chemin d'accès au dossier en tant que variable de chaîne la première fois qu'un programme est exécuté
Merci à vous tous pour l'aide pour l'instant! Je suis très novice en c# et le code en général. J'ai une question que je n'arrive pas à trouver la réponse.
Je viens d'écrire un programme simple qui déplace les fichiers d'un dossier vers un nouveau dossier nommé la date de ce jour. Veuillez voir ci-dessous:
private void button1_Click(object sender, EventArgs e)
{
DateTime now = DateTime.Now;
string date = (now.ToString("D"));
string a = @"m:\\staff docs\\faxes\\";
string b = @a + date + "\\";
System.IO.Directory.CreateDirectory(b);
DirectoryInfo dir1 = new DirectoryInfo("c:\\blah");
DirectoryInfo dir2 = new DirectoryInfo("@b");
FileInfo[] DispatchFiles = dir1.GetFiles();
if (DispatchFiles.Length > 0)
{
foreach (FileInfo aFile in DispatchFiles)
{
string files = @b + aFile.Name;
int count = 0;
Find :
if (File.Exists(files))
{
files = files + "(" + count.ToString() + ").txt";
count++;
goto Find;
}
aFile.MoveTo(files);
}
}
{
MessageBox.Show("Your files have been moved!");
J'aimerais avoir à l'utilisateur de définir le dossier source de la variable et le dossier de destination de la variable, soit en les faisant naviguer vers le dossier dans l'explorateur de fichiers, ou sur une Console.ReadLine - mais pas tout le temps d'exécuter le programme, il suffit de le premier. Il serait idéal si ils pouvaient modifier le chemin d'accès s'ils le voulaient plus tard, en tant que bien.
Merci beaucoup!
MODIFIER
Ma solution a été d'un Bouton sur mon Formulaire qui appelle ce bloc:
private void button3_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.Description = "Select source folder";
fbd.ShowDialog();
string Source = fbd.SelectedPath;
Properties.Settings.Default.source = Source;
Properties.Settings.Default.Save();
FolderBrowserDialog fbd2 = new FolderBrowserDialog();
fbd2.Description = "Select destination folder";
fbd2.ShowDialog();
string d1 = fbd2.SelectedPath;
string d2 = "\\";
string Destination = d1 + d2;
Properties.Settings.Default.destination = Destination;
Properties.Settings.Default.Save();
}
- Qu'utilisez-vous? WPF? Gagner de formes?
- Cette ligne
DirectoryInfo dir2 = new DirectoryInfo("@b");
ne devrait-elle pas êtreDirectoryInfo dir2 = new DirectoryInfo(@"b");
- gagner de formes.
- Je pense que j'ai essayé que le premier, mais il doit avoir l'impression de "b" à la place du chemin du fichier, car il n'a pas de travail. Je l'ai changé et maintenant entièrement fonctionnel à ce jour.
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser le bouton "paramètres de l'utilisateur" décrite ici: http://msdn.microsoft.com/en-us/library/bb397750.aspx
//EDIT:
disons que Vous avez un UTILISATEUR Paramètre de type chaîne de caractères appelée "MySetting"
si vous voulez le lire:
si vous voulez écrire (en supposant que vos données sont en
someVar
):l'appel à la méthode Save() persiste vos modifications ... les changements sont liés au compte d'utilisateur windows
au moment de la conception de votre paramètre doit être défini comme la Portée de l'UTILISATEUR
a = Properties.Settings.Default.Source
Il y a quelques possibilités que vous pouvez utiliser.
Une chose serait de créer un
XML
-fichier la première fois que l'utilisateur a entré les chemins. Vous pouvez le vérifier l'existence d'un fichier, et si elle existe, lire et si n'existe pas, le créer et écrire des données. Bien sûr, vous êtes capable d'éditer votre fichier XML.Il est le
System.Xml.XmlDocument
-classeVoir ici pour une référence.
Vous pourriez écrire une valeur dans le registre, trop. Tout comme une possibilité.
SpecialFolders
-> ici.