2017-09-07 4 views
0

Wie erhält man die Zeichenfolge im Schaltflächentext?Dateinamen in Schaltflächentext anzeigen

private void btn_open_Click(object sender, EventArgs e) 
{ 
    openFileDialog1.ShowDialog(); 
    ReadCSV(openFileDialog1.FileName); 
    btn_open.Text = "filename here"; 

    string targetdirectory = "D:\\Projects"; 
    string filename = Path.GetFileNameWithoutExtension(target directory); 
} 

Dank für Ihre Hilfe

+1

https://stackoverflow.com/help/how-to-ask - Bitte verbessern Sie Ihre Frage. Es ist nicht klar, was Sie hier fragen –

+0

Sorry, ich bin neu. Ich drücke auf eine offene Schaltfläche und ich kann eine CSV-Datei auswählen und in meinem DataGridview anzeigen. Nach dem Öffnen der Datei möchte ich den geöffneten Button zum Dateinamen ändern. – Tomy

+0

Ok. Kannst du 'btn_open.Text' nur dann deiner' filename' Zeichenkette zuweisen? –

Antwort

0

Wenn Sie eine Datei mit OpenFileDialog wählen, enthält die OpenFileDialog.FileName den vollständigen Pfad der ausgewählten Datei.

Path.GetFileNameWithoutExtension() tut genau das, den Dateinamen ohne Erweiterung erhalten. Sie müssen jedoch einen tatsächlichen Dateipfad und kein Verzeichnis übergeben. Wenn Sie einen Verzeichnispfad übergeben, wird nur der innerste Verzeichnisname abgerufen, der nicht Ihrem gewünschten Ergebnis entspricht.

Also was Sie tun sollten, ist;

  • Erhalten Sie den Dateinamen von OpenFileDialog.
  • Übergeben Sie dass zu der Path.GetFileNameWithoutExtension() Methode.
  • Legen Sie die resultierende Zeichenfolge als Text der Schaltfläche fest.

Auch die korrekte Verwendung von ShowDialog() ist, den Rückgabewert zu überprüfen; Es gibt true zurück, wenn der Benutzer auf die Schaltfläche OK und andernfalls auf false geklickt hat.

if(openFileDialog1.ShowDialog() == true) 
{ 
    string file = Path.GetFileNameWithoutExtension(openFileDialog1.FileName); 
    btn_open.Text = file; 
} 
+0

Vielen Dank! Es funktioniert ohne: if (openFileDialog1.ShowDialog() == true) == kann nicht mit Dialog Result verwendet werden. – Tomy

+0

OK, ich habe mein Beispiel mit WPF codiert, was ich geöffnet habe, sieht aus, als ob Sie auf WinForms sind. Sie können also 'if (openFileDialog1.ShowDialog() == DialogResult.OK)' ausführen, wodurch dasselbe Ergebnis erzielt wird. – Sach

+0

Wow, funktioniert! Ich bewundere dich. Einen schönen Tag noch. – Tomy

Verwandte Themen