Kopieren der lokalen Datei zum freigegebenen Laufwerk Probleme
Ich bin mit dem code unten, um zu überprüfen, ob ein Verzeichnis auf einem Netzwerk-Laufwerk vorhanden ist. Wenn es klappt kopiere ich die Datei; wenn ich nicht das Verzeichnis erstellen und kopieren Sie es dann über. Ich bin jedoch Probleme. Jede Hilfe wäre geschätzt danke. Die wichtigsten Themen, die eine IO-exception mit der Meldung der Netzwerkname kann nicht gefunden werden. Auch meine savelocation variable aussieht, wenn die Schrägstriche sind nicht mit Escapezeichen versehen.
string savelocation = @"\\network\" + comboBox1.SelectedItem + "\\" +
comboBox2.SelectedItem+"\\"+Environment.UserName;
//When I check what savelocation is, it returns the unescaped string
//for example \\\\network\\ and so on
if (Directory.Exists(savelocation)) //this returns true even if it exists
{
File.Copy(@"C:\Users\" + Environment.UserName + @"\test\" + label5.Text,
savelocation + "\\" + label5.Text);
}
else {
DirectoryInfo d = Directory.CreateDirectory(savelocation);
//The line above says the network name cannot be found
File.Copy(@"C:\Users\" + Environment.UserName + @"\test\" + label5.Text,
"\\\\atlanta2-0\\it-documents\\filestroage\\" + comboBox1.SelectedItem +
"\\" + comboBox2.SelectedItem + "\\" + Environment.UserName + label5.Text);
}
- sicher, sobald Sie uns sagen, was das Problem genau...
- Können Sie navigieren Sie zu
\\network
mit dem Windows Explorer?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, lasst uns die Arbeit an diesem code ein wenig. Lassen Sie uns zunächst vereinfachen den Bau der Wege. Wir haben ein Netzwerk-Pfad und einen lokalen Pfad. Nach Ihren aktuellen code der Netzwerk-Pfad gebaut, mit ein paar Variablen
comboBox1
,comboBox2
, undEnvironment.UserName
, also machen wir es ein wenig anders:die gehen, um die
\
in zwischen jeder dieser strings korrekt (d.h. wenn es bereits ein back-slash, es würde nicht hinzufügen, würde aber, wenn notwendig).Jetzt machen wir das gleiche für die lokalen Pfad:
ok, wir sind fast da, wir haben aber auch eine alternative Netzwerk-Pfad:
nun, eine Sache, die über diesen Weg das ist schon verdächtig für mich ist dies
\filestroage
, das ist tatsächlich falsch geschrieben. Nun, wenn der Ordner geschrieben ist so in Ordnung, aber ich wundere mich, wenn es falsch geschrieben. So nehmen Sie nur einen Blick. Okay, lasst uns weiter auf, nun haben wir alle drei Pfade gebaut, es ist ein wenig leichter zu Lesen, und wir können leicht Ausgabe-strings zu gewährleisten Sie Recht. Werfen wir einen Blick auf die Logik. Es sagt dies, wenn dienetworkPath
existiert, dann speichern Sie es, jedoch wenn es nicht existiert, dann erstellen Sie es und speichern Sie es auf deralternativeNetworkPath
. So machen wir das:okay, einfach genug, ja? Aber Sie erklärte, dass die
Directory.Exists
ist Rückgabe von trueeven if it exists
. Das ist ziemlich viel erwartet, ist es nicht? Wenn das Verzeichnis existiert, dann ist diese Methode würde auf jeden Fall wiederkommentrue
, wenn nicht, dann würde es wiederfalse
. Sie erklärte dann mit derDirectory.CreateDirectory
dassThe line above says the network name cannot be found
- das kann nur bedeuten, dass der Pfad war falsch konstruiert.So, nachdem es brechen, unter dem Strich ist dies, die Wege, die gebaut werden müssen, aus einer tidge. Aber mit diesem neuen Modell, Sie sollten in der Lage zu ziehen und die Wege aus viel einfacher. So ist die ganze Methode, in meinem Kopf, würde wie folgt Aussehen:
und so werfen wir nun einen Blick auf jene Pfade, die in diesen Variablen und Ihren problem kommen sollte Recht hin.