Speichern erzwingen?

  • VB.NET
  • .NET (FX) 1.0–2.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Speichern erzwingen?

    Hallo

    Normalerweise ist es ja nicht möglich, eine Datei zu bearbeiten wenn diese gerade verwendet wird, kann man dies aber trotzdem irgendwie erzwingen? (durch Systemrechte oder ähnliches?)


    Wäre großartig wenn ihr mir weiterhelfen könntet! :)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Es kommt immer darauf an, mit welchen Sharing-Rechte der momentane Prozess die Datei geöffnet hat.
    Wenn dieser Prozess nicht will, dass andere daran rumpfuschen, musst du den Prozess abschießen.

    Als User würde ich dir die Kugel geben, wenn du meine Prozesse killst.

    Was übrigens häufig geht, ist die Datei im Lesemodus zu öffnen.
    Da gibt's hier eine abhandlung dazu:
    In Textdatei lesen, die von anderem Prozess geöffnet ist

    Edit:
    Wenn du unbedingt speichern willst und gute Gründe dafür hast, die Veränderungen eines anderen Prozesses zunichte zu machen, ist folgendes noch einen Versuch wert:
    Benenne die Datei um und speichere deine Datei an deren Stelle.

    Das kann klappen, muss aber nicht.
    Je nachdem, wie der andere Prozess mit der Datei arbeitet.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    Vultrax schrieb:

    eine Datei zu bearbeiten
    geht nicht, wohl aber kannst Du sie lesen.
    Gugst Du hier.
    Allerdings gibt es (Quellcodeverwaltungs-) Systeme, die können Dateien behandeln, die (quasi) gleichzeitig von mehreren Leuten an verschiedenen Rechnern editiert wurden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das ich die Datei noch lesen kann, weiß ich, mir geht es allerdings darum, dass ich jede beliebige Datei z.B. auch eine .exe bearbeiten kann obwohl diese gerade verwendet wird.
    (Dass der Prozess dadurch abstürzen kann etc. weiß ich)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford

    Vultrax schrieb:

    bearbeiten kann obwohl diese gerade verwendet wird
    Was soll das für einen Zweck haben?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Vultrax schrieb:

    eine .exe bearbeiten kann obwohl diese gerade verwendet wird
    Könnte mit Umbenennen (z.B. Move in ein anderes Verzeichnis) funktionieren, da diese normalerweise beim Start komplett ins Memory gelesen wird.
    Ich mache auf diese Art manchmal Updates auf Windows-Services.
    Der Service läuft weiter bis zum Restart (oder Reboot) und zieht sich beim nächsten Mal die neue Datei.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --