file-rename

___ answer6695681 ___
  1. Nein, das ist nicht akzeptabel. Mach das nicht. Dies ist kein gültiger Bereitstellungsmechanismus. Dies sollte dein oder sein erster Hinweis gewesen sein:

      

    Es wird manchmal eine Ausnahme ausgelöst, dass die Datei in seinem Programm verwendet wird, aber wenn er versucht, sie in einer Schleife umzubenennen, wird es schließlich gelingen.

    Und es wird sowieso nicht funktionieren. Seine Theorie ist völlig falsch:

      

    Mit diesem Wissen will er eine laufende exe umbenennen und über eine neue Version der besagten exe kopieren, so dass jeder, der seine im Speicher befindliche Kopie von foo.exe ausführt, in Ordnung ist und jeder, der eine Verknüpfung auf foo.exe öffnet, bekommt neue Kopie mit Updates angewendet.

    Insbesondere wird die Kopie im Speicher nicht automatisch durch die neue ausführbare Datei ersetzt, nur weil sie denselben Namen hat. Der Grund, dass Sie die ausführbare Datei an erster Stelle umbenennen dürfen, liegt daran, dass das Betriebssystem den Dateinamen nicht verwendet, um die Anwendung zu finden. Die ursprüngliche ausführbare Datei wird weiterhin geladen und bleibt geladen, bis Sie sie explizit entladen und die neue, geänderte ausführbare Datei laden.

    Beachten Sie, dass selbst moderne Webbrowser wie Chrome und Firefox mit ihrer superschicken Automatik, im Hintergrund, niemand merkt, dass sie existieren, updaters noch immer die Anwendung schließen und neu starten müssen Übernehmen Sie die Updates.

    Mach dir keine Sorgen darüber, den Boten hier zu erschießen. Es ist wahrscheinlicher, dass Ihre Kunden und Ihre technische Supportabteilung Sie zuerst erschießen.

  2. Siehe Nummer 1.

___ answer6695640 ___

In unserer Organisation haben wir das Problem von Updates gelöst, indem wir zwei Release-Ordner mit EXE_A und EXE_B haben. Wir haben auch einen Release-Ordner namens EXE, der nur Links hat, von denen ALL entweder auf EXE_A oder EXE_B verweist, von denen aus der Benutzer die Anwendungen ausführt.

Wenn wir eine neue Version des Programms veröffentlichen, veröffentlichen wir sie in dem Ordner, auf den in den Links nicht verwiesen wird, und aktualisieren dann die Verknüpfungen (EXE). Auf diese Weise kommen Sie nicht in Ausnahmen, dass Benutzer die Anwendung / Assemblys halten. Auch wenn ein Benutzer die aktualisierte Version ausführen möchte, muss er nur den Link im EXE-Ordner schließen / erneut ausführen.

    
___ answer6696116 ___

Ein Flugzeugmechaniker und ein Chirurg treffen sich in einer Bar. Der Mechaniker sagt: "Weißt du, wir haben im Grunde den gleichen Job. Wir nehmen kaputte Sachen raus und legen neue, bessere Teile rein." Der Chirurg sagt "Ja, aber Sie müssen das Flugzeug nicht fliegen lassen, während Sie die Reparaturen machen!"

Der Versuch, eine Anwendung zu aktualisieren, indem Dateien verschoben werden, während die Anwendung ausgeführt wird, ist ungefähr so ​​gefährlich wie der Versuch, ein Flugzeug im Flug zu reparieren. Möglich? Sicher. Stark erhöhtes Risiko für Catestrophic Crash? Ja.

Wenn es sich bei der Anwendung, die Sie aktualisieren, um eine verwaltete Anwendung handelt, sollten Sie verwenden ClickOnce-Bereitstellung . Wenn die Anwendung das nächste Mal ausgeführt wird und eine neue Version verfügbar ist, wird sie automatisch kopiert und installiert. Das ist viel sicherer und angenehmer als zu versuchen, sich mit einer Anwendung zu beschäftigen, während sie noch läuft.

    
___ qstntxt ___

Wir versuchen, Updates auf mehrere Server gleichzeitig zu übertragen, und mein Manager hat festgestellt, dass es möglich ist, laufende .exe-Dateien umzubenennen. Mit diesem Wissen will er eine laufende exe umbenennen und über eine neue Version der exe kopieren, so dass jeder, der seine Kopie im Speicher von foo.exe ausführt, in Ordnung ist und jeder, der eine Verknüpfung auf foo.exe öffnet, eine neue Kopie mit bekommt Aktualisierungen angewendet.

Ich denke, ich muss klarstellen, Er erwartet nicht, dass die alte Kopie magisch aktualisiert wird, er erwartet nur, dass sie die alte Kopie weiter laufen lassen, bis sie die exe wieder öffnen, in welchem ​​Fall sie dann die neue öffnen wird hat den Namen des alten.

Es gibt manchmal eine Ausnahme, dass die Datei in seinem Programm verwendet wird, aber wenn er versucht, es in einer Schleife umzubenennen, wird es schließlich erfolgreich sein. Auf meiner Maschine muss ich es noch in einer Schleife arbeiten lassen.

Meine erste und wichtigste Frage lautet: Ist es jemals akzeptabel, dies zu tun? Sollte das Umbenennen einer laufenden ausführbaren Datei jemals ein gültiges Szenario sein?

Zweitens, wenn es ein gültiges Szenario ist, wie könnte man das dann zuverlässig tun? Unsere aktuellen Gedanken sind es, einige Male mit File.Move (C #) zu versuchen, eine Umbenennung vorzunehmen und wenn es nicht funktioniert, dann schreibe in ein Fehlerprotokoll, damit es manuell behandelt werden kann.

    
___ tag123windows ___ ALLGEMEINER WINDOWS-SUPPORT IST OFF-TOPIC. Support-Fragen können unter https://superuser.com gestellt werden. Windows ist ein von Microsoft entwickeltes Betriebssystem. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf die Verwendung von Windows-APIs oder Windows-spezifischem Verhalten in Bezug auf Ihren Code bezieht, nicht nur, weil Sie Ihren Code unter Windows ausführen. ___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123filename ___ rename-file bedeutet, den Namen einer Datei zu ändern ___ qstnhdr ___ Rename eine laufende ausführbare Datei (exe) [duplizieren] ___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123fileinuse ___ Fragen zu Problemen beim Ändern von Dateien aufgrund eines zweiten Programms mit Lese- oder Schreibsperre. ___ answer6695834 ___

Wenn Sie Windows Vista / Server2k8 oder neuer verwenden, können Sie mit %code% einen symbolischen Link zu dem Ordner erstellen, der Ihre Anwendung enthält, und die Anwendung aus dem "symblic linked folder" starten und dann beim Update einen neuen Ordner erstellen , z.B "AppV2" und ändern Sie SymLink in diesen Ordner. Wenn der Benutzer das Programm das nächste Mal neu startet, startet er es aus dem neuen Ordner, ohne es zu bemerken.

Das Umbenennen offener Dateien ist IMMER eine schlechte Wahl!

Aber im Allgemeinen würde ich mir sowieso eine bessere Bereitstellungsstrategie überlegen, denn wenn Sie solche "Hacks" verwenden müssen, ist das immer eine chaotische Situation. Ich kenne Ihre Anwendung nicht, aber vielleicht wäre ClickOnce ein Startpunkt, weil Sie sie so konfigurieren können, dass sie bei jedem Start nach Updates sucht ...

    
___
8
Antworten

Bash-Befehl zum Entfernen führender Nullen von allen Dateinamen

Ich habe ein Verzeichnis mit einer Reihe von Dateien mit Namen wie: %Vor% Ich möchte die führenden Nullen von allen Dateinamen entfernen, so dass ich zurücklassen würde: %Vor% Ich habe verschiedene Konfigurationen von sed versucht, aber...
15.01.2010, 20:49
3
Antworten

Wie kann man unter Linux / Unix mehrere Dateien von einer Erweiterung in eine andere umbenennen?

Ich habe eine Reihe von Dateien, die mit einer '.1' enden, zum Beispiel: %Vor% Gibt es eine Möglichkeit, dass ich sie alle schnell umbenennen kann, ohne die '.1' am Ende (z. B. Beispieldatei.ex1, Beispieldatei.ex2, usw.)? Danke!     
25.08.2013, 22:20
5
Antworten

Batchdatei-Skript zum Entfernen von Sonderzeichen aus Dateinamen (Windows)

Ich habe eine große Menge von Dateien, von denen einige Sonderzeichen im Dateinamen enthalten (z. B. ä, ö,% und andere). Ich möchte, dass eine Skriptdatei über diese Dateien iteriert und sie umbenannt, indem sie die Sonderzeichen entfernt. Es ma...
04.11.2008, 10:54
2
Antworten

Benennen Sie mehrere Dateien in Python um

Wie kann ich die folgenden Dateien umbenennen: %Vor% in die folgenden: %Vor% Der zugehörige Code lautet: %Vor%     
19.07.2013, 14:10
4
Antworten

Dateien mit Bash umbenennen, Präfix und Suffix entfernen

Ich möchte eine Reihe von Dateien mit bash umbenennen und dieses Dateimuster umwandeln: %Vor% In diesen: %Vor% Dafür habe ich folgendes Skript geschrieben: %Vor% Es funktioniert, aber ich möchte die Umbenennung mit einer einzigen Sch...
20.08.2012, 00:37
1
Antwort

Benennen Sie die Datei in c # .net um, wenn sie über das Datei-Upload-Steuerelement hochgeladen wird und den Namen der Datei in der Datenbank speichert

Ich habe einen Datei-Uploader, über den ich die Datei durchsuche und den Namen der Durchsuchen-Datei in der String-Variable angeben. jetzt möchte ich diesen Uplaod-Dateinamen mit einem anderen Namen umbenennen, der in einer anderen String-Variab...
07.08.2013, 05:48
3
Antworten

Erstellen Sie Git-Patches für zwei Dateien über mehrere Umbenennungen

Ich möchte zwei Dateien von einem Repository in ein anderes verschieben. Die Dateien wurden ursprünglich hinzugefügt als: /src/init/Price.cs /tests/init/PriceTests.cs Die beiden Dateien wurden später umbenannt in: /src/init/P...
27.04.2017, 11:25
5
Antworten

Benennen Sie eine Datei im internen Speicher um

Was ist der beste / einfachste Weg, um eine Datei im internen Speicher der Anwendung umzubenennen? Ich finde es etwas komisch, dass es eine Context.deleteFile() Methode gibt, aber keine "move" oder "rename" Funktion. Muss ich den gesamten Inh...
29.08.2012, 15:25
1
Antwort

Das Umbenennen einer 900 KB großen PDF-Datei dauert lange

Ich versuche rename() a 900 KiB PDF-Datei in PHP. Es dauert lange, es aus irgendeinem Grund umzubenennen. Ich dachte, es sollte sofort sein. Dies ist auf einem CentOS-Server. Während die Datei umbenannt wird, kann ich Eigenschaften erhalte...
17.10.2012, 23:03
0
Antworten

Verwenden Sie wget zum Überschreiben der Datei, aber verwenden Sie den temporären Dateinamen, bis die vollständige Datei empfangen wurde, und benennen Sie sie anschließend um

Ich benutze wget in einem Cron-Job, um einmal pro Minute eine .jpg-Datei in einen Webserver-Ordner zu laden (jedes Mal mit demselben Dateinamen, überschreiben). Dieser Ordner ist "live", da der Webserver das Bild auch von dort aus bedient. Wenn...
24.10.2013, 18:30