Вопрос вот в чём - у меня есть массив File[] MainFiles который хранит список всех файлов, папок и т.д. в некоторой директории. У меня есть GUI который например выводит для меня информацию о том сколько у меня там mp3 файлов, сколько avi и т.д. Я хочу, чтоб когда я поставлю галочку в checkbox сMp3 и нажму кнопку Copy у меня создалась директория Mp3 и в ней записались все mp3 файлы. вот код...
| Код |
else if(cMp3.isSelected()==true){ //проверка - нажат ли checkbox int index=1; File dirMp3 = new File("E:\\ForProject\\Mp3\\"); // cоздаём директорию dirMp3.mkdir();
while(indexes[2][index]!=0){ // это массив у меня хранит целочисленные значения, те индексы массива всех файлов mainFiles в которых элементы являются mp3 файлами try { copy(mainFiles[indexes[2][index]],dirMp3); // здесь я вызываю функцию copy, задаю ей mp3 файл и File (директорию, куда хочу скопироватьэтот файл) } catch (IOException e1) { e1.printStackTrace(); } inde++; } }
public static void copy(File source, File dest) throws IOException { FileChannel in = null, out = null; try { in = new FileInputStream(source).getChannel(); out = new FileOutputStream(dest).getChannel();
long size = in.size(); MappedByteBuffer buf = in.map(FileChannel.MapMode.READ_ONLY, 0, size);
out.write(buf);
} finally { if (in != null) in.close(); if (out != null) out.close(); } }
|
результат у меня получается не тот...при таком раскладе просто создаётся папка Mp3 и всё. если я не вызываю функцию mkdir(), то получается просто файл c именем Mp3 без расширения в который как я понимаю записывается содержание моего последнего *.mp3 файла. |