christian: Datei kann nicht aus Programm kopiert werden

Beitrag lesen

hi

Ansonsten poste doch einfach mal den relevanten Teil deines Codes
hier. Vielleicht bringt uns das schon ein bißchen weiter.

Die id3 klassen haben leider keine close methode (leider).
geht leider ziemlich schlecht weil der code bereits über 2000 zeilen hat und quer verteilt die zugriffe auf die mp3s! werds mal versuchen

die methode zum auslesen der Verzeichnisses:

void actShareFiles() (nehme die catch blöcke raus)
    {
        try
        {
   File[] tmp =  folder1.listFiles();
      String tmpStr;
      for(int i = 0; i < tmp.length;i++)
      {
       tmpStr = tmp[i].getPath();
       if(tmpStr.endsWith(".mp3"))
       {
        try
        {
            MP3File tmpmp3 = new MP3File(tmpStr);
      id3 = new ID3(tmpmp3);
         if(!(id3.checkForTag()))
         {
             ID3Dlg dlg = new ID3Dlg(this, "Keine ID3 gefunden", true, tmpStr, id3);
             id3.writeTag();
         }
         else if(id3.getArtist().length() < 3)
          {
             ID3Dlg dlg = new ID3Dlg(this, "Keine Vollständige ID3", true, tmpStr, id3);
             id3.writeTag();
         }
         else if(id3.getTitle().length() < 3)
         {
             ID3Dlg dlg = new ID3Dlg(this, "Keine Vollständige ID3", true, tmpStr, id3);
             id3.writeTag();
         }

shareData.add(id3.getArtist() + " - " + id3.getTitle());
      mp3files.add(id3);
      pathName.add(tmpStr);
      tmpmp3 = null;
     }
          id3 = null;
     tmpStr = null;

}

}
   for (int i = 0; i < shareData.size(); i++)
   {
     model.addElement(shareData.elementAt(i));
   }
  }
  catch(Exception e)
  {
    statuszeile.setText("Allgemeiner Fehler");
  }
 }

und die wo in die playlist geschrieben wird(actionperformed auch wieder ohne catch blöcke):

public void actionPerformed(ActionEvent e)
    {   try
       {
          String aktplayPath = (String)pathListen.elementAt(playlisten.getSelectedIndex());
          FileWriter playlist = new FileWriter(aktplayPath, true);
         BufferedWriter bufw = new BufferedWriter(playlist);
          int[] allSelFiles = shareList.getSelectedIndices();
          if(shareList.getSelectedIndex() != -1)
          {
          for (int i = 0; i < allSelFiles.length;i++)
          {
              System.out.println("h " + allSelFiles[i]);
           ID3 buf = getMp3File(allSelFiles[i]);
           model.removeElementAt(allSelFiles[i]);
           mp3files.remove(allSelFiles[i]);
           shareData.remove(allSelFiles[i]);
           String titel = buf.getTitle();
           String artist = buf.getArtist();
           buf = null;
           String path = (String)pathName.elementAt(allSelFiles[i]);
           MP3File filebuf = new MP3File(path);
           String leange = Long.toString(filebuf.getLength());
           bufw.newLine();
          bufw.write("#EXTINF:"+leange+","+artist+ " - " +titel);
           bufw.newLine();
          bufw.write(path);
          bufw.close();
          playlist.close();
          filebuf = null;
          pathName.remove(allSelFiles[i]);
          id3 = null;
          try
               {
                  int lastbuffer = aktplayPath.lastIndexOf("\");
                  String mysubstr = aktplayPath.substring(0, lastbuffer);
                  System.out.println("cmd /c move "" + path + "" "" + mysubstr + """);
                  System.out.println(path + " " + aktplayPath);
                    Runtime rt =Runtime.getRuntime();
                    Process p = rt.exec("cmd /c move "" + path + "" "" + mysubstr + """);
                    System.out.println("test");
               }

}
        }
        else
        {
            statuszeile.setText("kein File ausgewählt");
        }
       bufw.close();

}

}
  }