C# - festlegen einer Benutzer-definierten Pfad als string-variable das erste mal ein Programm ausgeführt wird
Dank an Euch alle für die Hilfe so weit!!! Ich bin sehr neu in c# und den code im Allgemeinen. Ich habe eine Frage, die ich kann nicht scheinen, um herauszufinden, die Antwort auf.
Schrieb ich ein einfaches Programm, das verschiebt Dateien von einem Ordner in einen neuen Ordner mit dem Namen, Tag, Datum. Sehen Sie bitte unten:
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!");
Ich würde gerne die Benutzer-definieren Sie die Quell-Ordner, variable und den Ziel-Ordner-variable, entweder indem er Sie zu dem Ordner navigieren, in einen Datei-browser, oder eine Konsole.ReadLine - aber nicht jedes mal, wenn Sie das Programm ausführen, nur das erste mal. Ideal wäre es, wenn Sie den Pfad ändern, wenn Sie wollten, auch später.
Vielen Dank!
BEARBEITEN
Meine Lösung war, einen Button auf meinem Formular, dass diese Anrufe blockieren:
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();
}
- Was verwenden Sie? WPF? Win forms?
- Diese Linie
DirectoryInfo dir2 = new DirectoryInfo("@b");
sollte es nichtDirectoryInfo dir2 = new DirectoryInfo(@"b");
- win forms.
- Ich denke, ich habe versucht, die erste, aber es gewesen sein muss-Druck "b" statt den Pfad der Datei, weil es nicht funktioniert. Ich habe es geändert und jetzt seine voll funktionsfähig, so weit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie die "Benutzer-Einstellungen" hier beschrieben: http://msdn.microsoft.com/en-us/library/bb397750.aspx
//EDIT:
lassen Sie uns sagen, Sie haben eine Benutzereinstellung vom Typ string namens "MySetting"
wenn Sie es Lesen wollen:
wenn Sie wollen, es zu schreiben (vorausgesetzt, Ihre Daten in
someVar
):dem Aufruf von Save() bleibt Ihr verpasst ... die änderungen sind an die windows-Benutzer-Konto
zur design-Zeit Ihre Einstellung sollte definiert werden als Scope USER
a = Properties.Settings.Default.Source
Gibt es ein paar Möglichkeiten, die Sie verwenden können.
Eine Sache wäre z.B. ein
XML
-Datei das erste Zeit, die der Benutzer in die Wege. Sie könnten überprüfen der Existenz der Datei und wenn es Sie gibt, Lesen Sie es und wenn nicht vorhanden, erstellen Sie es und schreiben von Daten. Natürlich werden Sie in der Lage sind, editieren Sie Ihre XML-Datei.Gibt es die
System.Xml.XmlDocument
-KlasseSehen hier für eine Referenz.
Könnten Sie schreiben den Wert in der Registrierung, auch. Nur als eine Möglichkeit.
SpecialFolders
-> hier.