2016-06-01 6 views
0

Ich möchte ein vorhandenes XML-Dokument in meinen bin/debug/project-Ordner kopieren und ein neues XML-Dokument erstellen, das nur eine Kopie mit einem anderen Namen ist.C# Kopieren vorhandener XML-Dokumente mit Linq nach XML

Hier ist, was ich bisher versucht haben:

 XDocument ReleasesXML; 

     if (XDocument.Load(id + ".xml") == null) 
     { 
      XDocument Version1 = XDocument.Load("SourcefileReleases.xml"); 
      ReleasesXML = new XDocument(Version1); 

     } 
     else 
     { 
      ReleasesXML = XDocument.Load(id + ".xml"); 
     } 

Antwort

1

Wie wäre es nur File mit Funktionen?

if(File.Exists(id + ".xml")) 
{ 
    File.Copy("SourcefileReleases.Xml", "newfile"); 
} 
else 
{ 
    // logic 
} 
2

Wenn Sie nur die Datei kopieren benötigen könnten Sie auch schreiben:

string path = System.Reflection.Assembly.GetExecutingAssembly().Location; 
    string fileFrom = System.IO.Path.Combine(path, "from.xml"); 
    string fileTo = System.IO.Path.Combine(path, "to.xml");  
    Systen.IO.File.Copy(fileFrom, fileTo); 

Reference

+0

ist ther ea Weise, die ich den Projektpfad verwenden könnte? Ich erinnere mich, in VBA können Sie etwas tun wie CurrentPath –

+0

Bearbeitete meine Antwort –

+0

Welche Art von Projekt codieren Sie? Web oder Anwendung? –

0

In meinem ASP.NET-Projekt ist dies der richtige Code:

// AppDomain.CurrentDomain.BaseDirectory = your project path 

    XDocument Version1 = XDocument.Load(AppDomain.CurrentDomain.BaseDirectory + "/Data/fileversion1.xml"); 
    XDocument newFile = new XDocument(Version1); 
    //Save the file with a new name 
    newFile.Save(AppDomain.CurrentDomain.BaseDirectory + "/Data/fileversion2.xml");