tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
422
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Babatune Babatune ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    23
    Hallo zusammen,

    ich habe folgendes Problem.
    Ich öffne in meinem Programm mehrere xmls die bearbeitet und wieder gespeichert werden.
    Jetzt kommt es öfter mal vor dass ich die Fehlermeldung bekomme, dass der Zugriff nicht funktioniert weil wohl ein anderer Prozess auf mein file zugreift.

    Ich gehe dabei folgendermaßen vor:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    
    XmlDocument xd = new XmlDocument();
    string input = "C:\..."
    FileStream fsin = new FileStrea(input,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
    xd.Load(fsin);
    ...
    //hier wird dann das input-file bearbeitet, das Ergebnis soll dann unter inputsave gespeichert werden:
     
    XmlWriterSettings writeSet = new XmlWriterSettings();
    writeSet.Indent = true;
    XmlWriter xmlWriter = XmlWriter.Create(inputsave, writeSet);
    xd.Save(xmlWriter);
     
     
    //danach wird inputsave weiter bearbeitet
    //also myprogram nimmt als Argumente inputsave und output
    //dabei werden aus inputsave die Informationen geholt und das Ergebnis wird in output gespeichert
    ProcessStartInfo startinfo  = new ProcessStartInfo();
    startinfo.FileName = myprogram;
    startinfo.Arguments = inputsave+" "+output;
    startinfo.WindowStyle = ProcessWindowStyle.Hidden;
    startinfo.CreateNoWindow = false;
    startinfo.UseShellExecute = false;
    startinfo.RedirectStandardError=true;
                
    using (Process exeProcess = Process.Start(startinfo))
    {
       exeProcess.WaitForExit();
       string errorstr = exeProcess.StandardError.ReadToEnd();   
    }

    Die Fehlermeldung kommt unregelmäßig, also manchmal läuft es durch und manchmal hängts.
    Aber es passiert dann immer an der Stelle wenn ich input unter inputsave speichern will.
    Wenn ich versuche inputsave mit
    System.IO.File.Delete(inputsave) zu löschen bekomm ich in dem Fall auch die gleiche Fehlermeldung

    Beende ich irgendwo einen Prozess nicht anständig oder gibt es die Möglichkeit das speichern zu erzwingen also den wohl noch laufenden Prozess zu umgehen/killen?


    Vielen Dank,
    Babatune
     

  2. #2
    Babatune Babatune ist offline Mitglied
    Registriert seit
    Mar 2011
    Beiträge
    23
    Ah ich habs jetzt so gemacht:
    Code :
    1
    2
    3
    
    using(XmlWriter xmlWriter = XmlWriter.Create(inputsave,writeSet)){
    xd.Save(xmlWriter);
    }
    und jetzt scheints zu klappen
     

Ähnliche Themen

  1. Benutzersteuerung Access .mdw File
    Von DERHAARKAMM im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 10.08.09, 14:53
  2. Antworten: 4
    Letzter Beitrag: 14.07.09, 16:28
  3. Monitor file access (Windows)
    Von zu1u im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 04.05.09, 09:53
  4. Access mdb-File in Mysql
    Von besi im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 19.04.05, 13:11
  5. [ C ] File access funkioniert nicht :(
    Von BeaTBoxX im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 10.01.04, 19:06