none
Testprozedur um die Existenz von Dateien auf die Links (.lnk) zeigen festzustellen RRS feed

  • Frage

  • // Achtung: chosen_file ist der Pfad auf eine gültige .lnk - Datei
    // Ich versuche die Datei auf den der Link zeigt, auszuführen (execute)
    // und NICHT zu lesen oder zu beschreiben. D.h. der Schnick-Schnack
    // mit StreamReader und StreamWriter ist hier bedeutungslos.
    // Letzten Endes will ich wissen welche Links noch auf ein existierendes
    // File zeigen, da im Laufe der Jahre die Zieldateien gelöscht oder verschoben wurden.
    // Doppelklick mit der Maus im Windows Explorer würde funktionieren, aber
    // bei Tausenden von .lnk-Dateien ist mir meine Zeit zu kostbar.
    // Mein ganzes System ist mit Visual Studio 2017 aufgebaut im Konsolenmodus.
    // Wäre sehr dankbar für einen Hinweis wie man das Problem einfach löst !!
    // ------------------------
    FileInfo fi1 = new FileInfo(chosen_file);
    try
    {
       fi1.Open(FileMode.Open); // Klick mit der Maus auf Öffnen im Explorer funktioniert!
       Console.WriteLine("try-Block erfolgreich");
    }
    catch (Exception e)
    {
       Console.WriteLine(e);
       Console.WriteLine("Datei konnte nicht geöffnet werden\n{0}",chosen_file);
    }
    Montag, 22. Juli 2019 16:52

Antworten

  • Nein, ich will nur wissen welche Links auf noch existierende Ziele zeigen. Ich mache Gebrauch von vielen Links (hart oder symbolic) in meinem "papierlosen Büro = Leitz Ordner" und weiss nie, ob ich Gebrauchsanweisungen unter Handbuch, Manual, oder wer weiss wo abgespeichert habe: also Links verwenden. Mein Problem ist durch das Einfügen der Anweisung [STAThread] vor Main() in meiner C#-Code gelöst - ohne diese .NET Anweisung, bekam ich immer eine Laufzeitfehler bei Shell32.Shell shell = new Shell32.Shell();

    Mittwoch, 24. Juli 2019 19:12

Alle Antworten

  • Hi,

    Du willst also ernsthaft einfach jede Verknüpfung einfach mal ausführen, obwohl Du nach eigener Aussage eigentlich nur wissen willst, ob das Linkziel noch existiert?

    Falls Du doch nur das Linkziel ermitteln und anschließend prüfen willst, ob das Ziel existiert, schau mal in dieses Codebeispiel:

      Identifying and Resolving Shortcuts/Links of files and folders

     


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
    https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport


    Montag, 22. Juli 2019 21:58
    Moderator
  • Nein, ich will nur wissen welche Links auf noch existierende Ziele zeigen. Ich mache Gebrauch von vielen Links (hart oder symbolic) in meinem "papierlosen Büro = Leitz Ordner" und weiss nie, ob ich Gebrauchsanweisungen unter Handbuch, Manual, oder wer weiss wo abgespeichert habe: also Links verwenden. Mein Problem ist durch das Einfügen der Anweisung [STAThread] vor Main() in meiner C#-Code gelöst - ohne diese .NET Anweisung, bekam ich immer eine Laufzeitfehler bei Shell32.Shell shell = new Shell32.Shell();

    Mittwoch, 24. Juli 2019 19:12