Announcement

Collapse
No announcement yet.

File.Move -> Prozess blockiert

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • File.Move -> Prozess blockiert

    hey leute,

    ich hab mir ein programm geschrieben, dass mir bestimmte dateien in einen bestimmten namen umbenennt!

    der button "serien kopieren" stimmt nicht ganz, muss "serien umbenennen" heißen!

    das funktioniert auch alles sehr gut... also wenn ich die dateien jetzt umbenenne und das programm ist immernoch offen, dann kann ich im explorer alle tadellos löschen usw.!

    wenn ich die dateien jetzt umbenenne und ich beende mein programm, dann kann ich bei der ersten datei, die umbenannt wurde, nichts mehr machen (also z.b. löschen, im explorer umbenennen), weil er mir sagt, dass der zugriff verweigert wurde, da ein prozess daraufzugreift! die anderen dateien kann ich alle normal löschen!

    aber wie kann das sein? mein programm ist doch schon beendet...

    ich weiß nicht woran das liegt

    lg,
    alex
    Attached Files

  • #2
    Ich tipp mal auf den Virenscanner. Schalte ihn mal testhalber aus.

    Comment


    • #3
      Originally posted by Bernhard Geyer View Post
      Ich tipp mal auf den Virenscanner. Schalte ihn mal testhalber aus.
      ok ich probiers zuhause dann mal! aber wie kann der virenscanner dran schuld sein?

      Comment


      • #4
        Originally posted by leuchtdiode View Post
        aber wie kann der virenscanner dran schuld sein?
        Manche Scanner implementieren ein "delayed Scanning" um die normalen Dateioperationen nicht so stark zu Blockieren. Der eTrust-Scanner von CA gehört z.B. dazu.

        Comment


        • #5
          Originally posted by Bernhard Geyer View Post
          Manche Scanner implementieren ein "delayed Scanning" um die normalen Dateioperationen nicht so stark zu Blockieren. Der eTrust-Scanner von CA gehört z.B. dazu.
          ok, hab den guard von antivir deaktiviert und es kommt trotzdem vor... auch wenn mein programm noch offen ist, hatte ich jetzt das problem, dass auf die erste datei zugegriffen wird... die restlichen kann ich problemlos löschen!

          kA woran das liegt...

          Comment


          • #6
            Dann hast du wahrscheinlich Code geschrieben der die Datei sperrt (File.Move sollte das eigentlich nicht tun). Machst du sonst noch etwas in deinem Programm mit den Dateien? Und wenn die Datei auch nach dem (scheinbaren) Ende deiner Anwendung weiter gesperrrt ist bist du dir sicher das du deine Anwendung auch vollständig beendet ist und du nicht nur die letzte Form der Anwendung geschlossen hast die Anwendung aber noch ~nachläuft~?

            Wenn du das so nicht erkennen kannst würde ich die ein Tool empfehlen das festsstellt welcher Prozeß die Datei sperrt. Z.B. mit dem ProzessExplorer von SysInternals kannst du nach dem Dateihandle suchen und dir den Prozeß dazu anzuzeigen lassen.

            Comment


            • #7
              ok danke, hab mir das gerade mal angeschaut!

              wenn ich z.b. 11 dateien in den ordner kopier und ich diese umbenennen will, dann greift der prozess explorer.exe auf bestimmte dateien zu! (ohne dass mein programm noch läuft)! normal wars immer ein file, jetzt hab ichs z.b. auch schon bei 3 gehabt!

              und genau die dateien auf die der prozess zugreift, lassen sich zwar umbennen, aber dann bekomm ich immer die meldung, dass ein prozess darauf zugreift!

              außer umbennen mach ich in meinem programm nichts mit den dateien!

              Code:
              for (int i = 0; i < anzahlOrdner; i++)
                                  {
                                      try
                                      {
                                          int folgeInt = i + 1;
                                          String folge;
                                          if (folgeInt < 10)
                                          {
                                              folge = "0" + folgeInt;
                                          }
                                          else
                                          {
                                              folge = Convert.ToString(folgeInt);
                                          }
                                          String pfadAlt = listOrdner.Items[i].Text;
                                          String nameNeu = listNamen.Items[i].Text;
                                          String pfadNeu = TBOrdner.Text + "\\" + staffel + "x" + folge + "_" + mittelteil + "_" + nameNeu + "." + endung;
                                          //File.Copy(pfadAlt, pfadNeu, true);
                                          File.Move(pfadAlt, pfadNeu);
                                          listLog.Items.Add(pfadAlt + " wurde nach " + pfadNeu + " kopiert...");
                                      }
                                      catch (Exception ex)
                                      {
                                          MessageBox.Show("Fehler beim Umbenennen der Datei!");
                                      }

              Comment

              Working...
              X