none
überprüfen ob eine Datei geöffnet ist???

    Frage

  • Hallo,

    ich öffne eine Textdatei wie folgt:

    AutomationFactory.CreateObject("WScript.Shell").Run(@"C:\Test\test.txt");


    Und ich möchte jetzt überprüfen ob die Datei noch geöffnet ist oder nicht und das mache ich wie folgt:

    try
    {
    	File.Move(@"C:\Test\test.txt", @"C:\Test\Ergebnis.txt");
    		MessageBox.Show("Die Datei kann bewegt werden");
    }
    catch
    { }

    Habe aber das Problem, dass obwohl die Datei noch geöffnet ist, ich sie trotzdem umbenennen kann.

    Kann jemand mir vielleicht sagen, wie ich in meinem Fall überprüfen kann, ob die Datei noch geöffnet ist oder nicht?


    Gruesse, NUNUI

    Mittwoch, 28. September 2016 14:02

Antworten

  • Hi,

    durch das starke Sandboxing wohl nicht.

    VLG, Tobi


    Best Regards. When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer. This helps us build a healthy and positive community.

    • Als Antwort vorgeschlagen Stefan Falz Dienstag, 4. Oktober 2016 07:07
    • Als Antwort markiert Nunui Dienstag, 4. Oktober 2016 07:09
    Montag, 3. Oktober 2016 14:50

Alle Antworten

  • Hi,

    willst Du die Datei exklusiv öffnen? Also nur für deinen Prozess? Falls ja, schau mal in diesen Thread:

      https://social.msdn.microsoft.com/Forums/de-DE/20bb754f-ee44-49b3-b5b2-71060cf00af0/dateien-gelockt-ffnen?forum=visualcsharpde

    Dort findest Du auch einen Ansatz, wie Du feststellen kannst, ob die Datei noch von einem anderen Prozess/User aus geöffnet wurde.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 28. September 2016 14:24
  • Danke für den Hinweis! Aber das ist auch genau mein Problem!

    Wie kann ich aber mit AutomationFactory.CreateObject("WScript.Shell").Run die Datei exklusiv öffnen?


    Gruesse, NUNUI

    Mittwoch, 28. September 2016 15:06
  • Hi,

    gar nicht.

    Aber warum willst Du das überhaupt so machen?

      https://msdn.microsoft.com/en-us/library/y973b725(v=vs.95).aspx

    Öffne die Datei doch einfach über File.Open!?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 28. September 2016 15:57
  • Hallo,

    entschuldige meine späte Antwort. 

    Aber mit File.Open kann ich die Datei doch nicht für den Anwender ausführen!


    Gruesse, NUNUI

    Donnerstag, 29. September 2016 11:02
  • Hi,

    was meinst Du "für den Anwender ausführen"?

    Du willst doch eine Textdatei öffnen, oder? Falls ja, bau doch einfach ein Textfeld in deine Anwendung, lade den Inhalt dort rein (sperr evtl. die Datei solange), speichere die Änderung (und gib evtl. die Datei dann auch wieder frei).

    Wenn der Anwendung die Datei in Notepad selbst bearbeiten soll, kannst Du die nicht aus deiner Anwendung heraus sperren. Wie soll das auch gehen? Dann könnte Sie durch Notepad ja auch nicht mehr bearbeitet werden.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Donnerstag, 29. September 2016 11:38
  • es geht nicht nur um die Textdateien sondern auch um andere Dateitypen, z.B. Worddokumente oder Exceldateien, usw. und daher möchte die Datei aus dem Programm heraus starten und dann wenn der Anwender mit seiner Arbeit fertig ist und die Datei gespeichert und geschlossen hat, die Datei dann auf dem Server hochladen!

    Gruesse, NUNUI

    Donnerstag, 29. September 2016 11:48
  • Hi,

    in dem Fall kannst Du meines Wissens nach keine Sperren setzen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort vorgeschlagen Stefan Falz Dienstag, 4. Oktober 2016 07:07
    Donnerstag, 29. September 2016 12:10
  • Erstmal Danke für Deine Unterstützung :o)

    Gibt es vielleicht irgendeine andere Möglichkeit festzustellen, wann die geöffnete Datei geschlossen wurde?


    Gruesse, NUNUI

    Donnerstag, 29. September 2016 12:13
  • Hi,

    durch das starke Sandboxing wohl nicht.

    VLG, Tobi


    Best Regards. When you see answers and helpful posts, please click Vote As Helpful, Propose As Answer, and/or Mark As Answer. This helps us build a healthy and positive community.

    • Als Antwort vorgeschlagen Stefan Falz Dienstag, 4. Oktober 2016 07:07
    • Als Antwort markiert Nunui Dienstag, 4. Oktober 2016 07:09
    Montag, 3. Oktober 2016 14:50