Filemode OpenOrCreate and Truncate?



  • Gibts möglichkeiten eine Datei grundsätzlich zu überschreiben? Also wenn eine Datei schon existiert diese mit truncate zu überschreiben. Falls nicht soll sie angelegt werden?

    Ich habe es mit

    OpenOrCreate | Truncate versucht. Aber dabei wird erwartet das die Datei existiert. Nur OpenOrCreate überschreibt zwar, sind aber die alten daten mehr als die neuen Daten bleiben restbestände da.



  • try
    {
       FileStream fsInput = new FileStream ("Inputfile.txt", FileMode.Open, FileAccess.Read);
    
    ...
    }
    catch
    {
       // create 
    }
    

    So etwas ??

    Gruss Sheldor



  • naja mit try catch hatte ich mir schon überlegt. Aber irgendwie bereitet es mir unbehagen try{}catch zur programmsteuerung zu verwenden.



  • Was spricht gegen FileMode.Create?

    Specifies that the operating system should create a new file. If the file already exists, it will be overwritten.

    Andernfalls:

    if( File.Exists("Inputfile.txt") )
    {
    }
    else
    {
    }
    


  • ich werd wohl das mit den File.Exists nehmen. An FileMode.Create habe ich nix auszusetzen. Wäre mir aber nicht sicher das es die Dateilänge kürzt.

    Das Problem war ja auch beim OpenOrCreate existent das es die vorhandenen Daten zwar überschreibt aber wenn die neuen Daten weniger waren als die Alten. Fragmente der alten Daten vorhanden blieben.



  • Fedaykin schrieb:

    ich werd wohl das mit den File.Exists nehmen. An FileMode.Create habe ich nix auszusetzen. Wäre mir aber nicht sicher das es die Dateilänge kürzt.

    Das Problem war ja auch beim OpenOrCreate existent das es die vorhandenen Daten zwar überschreibt aber wenn die neuen Daten weniger waren als die Alten. Fragmente der alten Daten vorhanden blieben.

    OpenOrCreate öffnet eine vorhandene Datei oder erzeugt eine neue. Create erzeugt immer eine komplett neue Datei. Das Problem mit nicht gekürzter Dateilänge gibts da also nicht.



  • loks schrieb:

    OpenOrCreate öffnet eine vorhandene Datei oder erzeugt eine neue. Create erzeugt immer eine komplett neue Datei. Das Problem mit nicht gekürzter Dateilänge gibts da also nicht.

    Besten Dank.


Anmelden zum Antworten