2016-04-08 8 views
-1

Verileri kaydederken bir sorun yaşıyorum, kullanıcı karakterleri için ad verilerini kaydetmeyi denediyse ve bir dosya zaten varsa, bunu oluşturmaya çalışıyorum ikinci bir xml dosyası "NameData2.xml" ve benzeri en fazla 3 dosyaya ulaşılana kadar, (böylece kullanıcının seçebileceği farklı karakterleri vardır), ancak şu anda aynı adda iki xml dosyası oluşturabilir (sanırım bunların hepsi bir seferde hepsini aynı anda kontrol ediyor olsalardı, eğer muhtemelen bir başka deyişle ifadeler bulmaya çalışırken bulabildiğim her şey bir dosya varlığını nasıl kontrol edeceğimi ve eğer nasıl bir tane yaratılacağını bulamıyorsa, Herhangi bir öneriye sahip olduğum gibi bir teklifim varsa, aşağıdaki kodumu gönderirim:Başkalarının varlığına bağlı olarak farklı XML dosyaları oluşturma C#

T önceden hankyou.

// This will save the users generated name in a created file 
    // NameData.xml and will take the user to the partySelectionScreen. 
    private void continueButton_Click(object sender, RoutedEventArgs e) 
    { 

     try 
     { 
      NameSavingInformation nameInfo = new NameSavingInformation(); 
      nameInfo.GeneratedName = generatedNameTexbox.Text; 
      SaveXml.SaveData(nameInfo, "NameData.xml"); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

     if(File.Exists("NameData.xml")) 
     { 
      NameSavingInformation nameInfo = new NameSavingInformation(); 
      nameInfo.GeneratedName = generatedNameTexbox.Text; 
      SaveXml.SaveData(nameInfo, "NameData2.xml"); 
     } 
     else if (File.Exists("NameData2.xml")) 
     { 
      NameSavingInformation nameInfo = new NameSavingInformation(); 
      nameInfo.GeneratedName = generatedNameTexbox.Text; 
      SaveXml.SaveData(nameInfo, "NameData3.xml"); 
     } 
     else if (File.Exists("NameData3.xml")) 
     { 
      MessageBox.Show("You have passed the limit of existing characters" + 
       "To continue please return to the main menu and delete at least 1 character"); 
     } 

cevap

0

Bunu yapmalısınız. Bu, bulunmayan dosyalarda bir arama gerçekleştirecek ve bunları üretecektir. Bu, kullanıcının algoritmayı bozmadan istediği herhangi bir karakteri silmesine izin verecektir.

private void continueButton_Click(object sender, RoutedEventArgs e) 
{ 
    if(!File.Exists("NameData.xml")) 
    { 
     SaveFileInfo("NameData.xml"); 
    } 
    else if (!File.Exists("NameData2.xml")) 
    { 
     SaveFileInfo("NameData2.xml"); 
    } 
    else if (!File.Exists("NameData3.xml")) 
    { 
     SaveFileInfo("NameData3.xml"); 
    } 
    else 
    { 
     MessageBox.Show("You have passed the limit of existing characters" + 
      "To continue please return to the main menu and delete at least 1 character"); 
    } 
} 

public SaveFileInfo(string fileName) 
{ 
    try 
    { 
     NameSavingInformation nameInfo = new NameSavingInformation(); 
     nameInfo.GeneratedName = generatedNameTexbox.Text; 
     SaveXml.SaveData(nameInfo, fileName); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

bu harika cevap için zaman ayırdığınız için çok teşekkür ederim! – Ambitiousmilky