tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
JA
ANTWORTEN
22
ZUGRIFFE
2101
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    Avatar von tecla
    tecla tecla ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    163
    Hallo Shakie

    Erstmal Danke für den Tipp mit dem ProzessExplorer!
    Tja, es IST mein eigener Prozess Sobald ich mit dem OpenFileDialog drauf browse und auf öffnen klicke, hat mein Prozess die Datei im festen Griff und lässt sie nicht mehr los! So ein Ärger. Hast du ne Idee, wie ich meinem Prozess befehlen kann, die Datei wieder freizugeben?

    Liebe Grüsse
     

  2. #17
    Avatar von tecla
    tecla tecla ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    163
    ich hab jetzt mal meinem FileOpenDialog ein Dispose() befohlen. Das scheint zu nützen:

    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
    30
    31
    32
    33
    
    private static string Browse(string sFilter, string sPath)
            {
                string sPfad = string.Empty;
                OpenFileDialog openFileDialog1 = new OpenFileDialog();
                openFileDialog1.Title = "Datei aussuchen";
                if (sPath == "")
                    openFileDialog1.InitialDirectory = "c:\\";
                else
                    openFileDialog1.InitialDirectory = sPath;
                if (sFilter != "")
                    openFileDialog1.Filter = sFilter + " files (*." + sFilter + ")|*.xls|All files (*.*)|*.*";
                openFileDialog1.FilterIndex = 2;
                openFileDialog1.RestoreDirectory = true;
     
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        if (openFileDialog1.OpenFile() != null)
                        {
                            sPfad = openFileDialog1.FileName;
                           [COLOR="Red"] openFileDialog1.Dispose();[/COLOR]
                        }
     
                    }
                    catch
                    {
                        MessageBox.Show("Die Datei konnte nicht geöffnet werden!\n" +
                            "Vermutlich ist sie schon offen oder durch einen anderen Benutzer gesperrt.");
                    }
                }
                return sPfad;
            }

    Momentan klappts damit, herzlichen Dank für eure Hilfe
     

  3. #18
    Avatar von tecla
    tecla tecla ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    163
    scheint ein Zufall gewesen zu sein

    Beim zweiten Test ist alles wieder beim Alten....
     

  4. #19
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Hi.

    Versuch mal beim Öffnen vom Dialog using zu verwenden, und das selbe dann nochmal bei der Datei. Dadurch werden die Resourcen automatisch freigegeben,.. so sparst du dir das Aufrufen von Dispose.

    Code csharp:
    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
    30
    31
    32
    33
    34
    35
    36
    
    private static string Browse(string sFilter, string sPath)
    {
        string sPfad = string.Empty;
        using (OpenFileDialog openFileDialog1 = new OpenFileDialog())
        {
            openFileDialog1.Title = "Datei aussuchen";
            if (sPath == "")
                openFileDialog1.InitialDirectory = "c:\\";
            else
                openFileDialog1.InitialDirectory = sPath;
            if (sFilter != "")
                openFileDialog1.Filter = sFilter + " files (*." + sFilter + ")|*.xls|All files (*.*)|*.*";
            openFileDialog1.FilterIndex = 2;
            openFileDialog1.RestoreDirectory = true;
        
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    using (Stream strm = openFileDialog1.OpenFile())
                    {
                        if (strm != null)
                        {
                            sPfad = openFileDialog1.FileName;
                        }
                    }
                }
                catch
                {
                    MessageBox.Show("Die Datei konnte nicht geöffnet werden!\n" +
                        "Vermutlich ist sie schon offen oder durch einen anderen Benutzer gesperrt.");
                }
            }
        }
        return sPfad;
    }


    lg,..
    tecla bedankt sich. 
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  5. #20
    Avatar von tecla
    tecla tecla ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    163
    Das bringts Supi, jetzt scheints einwandfrei zu klappen!
    Herzlichen Dank, war das jetzt eine Zangengeburt!
     

  6. #21
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Hab noch was im Netz dazu gefunden:
    Setting the file dialog's 'RestoreDirectory' property to
    'True' seems to fix the problem.
    Siehe: http://bytes.com/topic/visual-basic-...l-locks-folder
    tecla bedankt sich. 
    hihi = -h²

  7. #22
    Avatar von tecla
    tecla tecla ist offline Mitglied Gold
    Registriert seit
    Jul 2007
    Beiträge
    163
    Hallo Shakie

    RestoreDirectory hab ich schon ganz zu Anfang auf true gesetzt. Das hilft also nix.
    Das using-Statement ist super, ich habe keine Probleme mehr...
    Trotzdem Danke für deine eifrige Hilfe

    Liebe Grüsse, Tecla
     

  8. #23
    Avatar von Spyke
    Spyke Spyke ist offline Capoeirista
    Registriert seit
    Oct 2002
    Beiträge
    931
    Hab doch schon auf Seite 1 gesagt Stream schließen
    Sorry aber das musst ich jetzt noch los werden.
     
    www.iv-interactive.de - Projektewebsite
    WikiParser - aktuelles Projekt

Ähnliche Themen

  1. Kann nicht auf Datei zugreifen
    Von Didistreu im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 07.02.10, 17:44
  2. Der Prozess kann nicht auf die Datei zugreifen
    Von PH234X im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 15.09.09, 09:31
  3. move file
    Von al-Maghribi im Forum PHP
    Antworten: 1
    Letzter Beitrag: 13.05.08, 22:58
  4. Datei: lesen eines Files - Prozess kann nicht zugreifen
    Von sinamine im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 25.04.08, 14:42
  5. Antworten: 2
    Letzter Beitrag: 05.10.06, 11:26