Nur Dateinamen aus String^ extrahieren



  • Wie extrahiere ich nur den Dateinamen aus einem String^
    Also aus
    "C:\Testfolder\test.txt"
    muss ich
    "test.txt"
    extrahieren

    Warscheinlich ist es total einfach nur kenn ich die Funktionen nicht 😞



  • Entweder suchst du nach dem letzten Schrägstrich,
    oder noch einfacher:

    using namespace System;
    using namespace System::Windows::Forms;
    using namespace System::IO;
    
    String ^ path = "C:\\Testfolder\\test.txt";
    FileInfo ^ fi = gcnew FileInfo(path);
    MessageBox::Show(fi->Name);
    


  • NaNaNa... doch nicht so kompilziert... Dein Vorschlag ist viel zu zeitraubend...
    Nimm einfach

    System::IO::Path::GetFileName(path);
    


  • Jochen Kalmbach schrieb:

    NaNaNa... doch nicht so kompilziert... Dein Vorschlag ist viel zu zeitraubend...
    Nimm einfach

    System::IO::Path::GetFileName(path);
    

    Ok, du hast gewonnen.

    Aber zumindest ich brauch i. d. R. nicht nur den Dateinamen, sondern dann irgendwo
    auch wieder den zugehörigen Pfad. Dann ist das FileInfo Objekt schöner, weil gleich
    alles mit drinnen ist :p



  • anonymus schrieb:

    Aber zumindest ich brauch i. d. R. nicht nur den Dateinamen, sondern dann irgendwo
    auch wieder den zugehörigen Pfad. Dann ist das FileInfo Objekt schöner, weil gleich
    alles mit drinnen ist :p

    Das kommt immer darauf an, was Du machen willst... Deine Funktion prüft halt wirklich nach, ob die Datei/Pfad existiert! Was wiederum zu einer Exception führen kann.
    Die Path-Klasse zerlegt dagegen nur den String in seine Bestandteile ohne eine Prüfung vorzunehmen.
    Aus diesem Grunde ist die Path-Klasse auch sehr schnell, da kein Zugriff auf das Dateisystem/Netzwerk gemacht werden muss.



  • Ok ich habs, war bitter nötig
    Vielen dank 👍


Anmelden zum Antworten