|
|
|
Запаковать кучку файлов
|
|||
|---|---|---|---|
|
#18+
Есть папка с порядка 300тыс. мелких текстовиков... Надо все эти файлы рассовать по архивам по дням создания (порядка трех тысяч файлов в день, т.е. три тыщи файлов в каждый архив). Делаю так (сурово, но как могу :)): Код: java 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. Т.е.: 1. читаем директорию 2. смотрим дату создания файла и пытаемся засунуть его в соответствующий архив пробую через ZipEntry.putNextEntry Но при этом он затирает уже существующие в нем файлы (ну или пересоздает архив). Нашел такой вариант добавления Но здесь похоже: 1. из архива создается копия 2. создается новый архив, куда кладутся файлы из п.1 + новый файл Но это ж громоздко и долго. Есть ли другие варианты? Сам вижу такой вариант: 1. Прочитать все файлы в директории, отсортировать их по дате 2. По порядку заливать их в соответствующий архив сразу подбирая все файлы для нужного архива Но может есть вариант гуманного добавления файла в zip? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 13:06 |
|
||
|
Запаковать кучку файлов
|
|||
|---|---|---|---|
|
#18+
JDS, У вас FileOutputStream тупо создаёт новый файл. С чего вы решили что таким образом можно добавлять в ZIP файлы не понято. Для того чтобы добавить файл в ZIP, его нужно перепаковать. Вот пример. http://stackoverflow.com/a/2265206 Поэтому предварительная сортировка выглядит наиболее разумным вариантом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 13:16 |
|
||
|
Запаковать кучку файлов
|
|||
|---|---|---|---|
|
#18+
Я делал подобное. Если уникальных дней не очень много можно сделать так Код: java 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. Если много - то ХЗ. Надо посчитать насколько ресурсоёмкие экземпляры ZipOutputStream ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 13:37 |
|
||
|
Запаковать кучку файлов
|
|||
|---|---|---|---|
|
#18+
BlazkowiczДля того чтобы добавить файл в ZIP, его нужно перепаковать. Вот пример. Поэтому предварительная сортировка выглядит наиболее разумным вариантом. Да. На такой же пример и привел ссылку. mayton, Blazkowicz, значит буду сначала сортировать. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 13:54 |
|
||
|
Запаковать кучку файлов
|
|||
|---|---|---|---|
|
#18+
Ну там... по линии else я забыл инициализировать zos. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 14:00 |
|
||
|
Запаковать кучку файлов
|
|||
|---|---|---|---|
|
#18+
maytonНу там... по линии else я забыл инициализировать zos. Прикольно, но думаю, что не потянет так - под гиг данных сотни тыщ файлов за сотню другую дней. Попробу совсем тупо: взял файл, посмотрел его дату, пошел по директории собирать в архив файлы с этой же датой и т.д. (сортировать лень )). Осталось только найти как окргулять дату до дня ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 14:14 |
|
||
|
Запаковать кучку файлов
|
|||
|---|---|---|---|
|
#18+
а. ну SimpleDateFormat-ом и буду ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 14:16 |
|
||
|
Запаковать кучку файлов
|
|||
|---|---|---|---|
|
#18+
JDSmaytonНу там... по линии else я забыл инициализировать zos. Прикольно, но думаю, что не потянет так - под гиг данных сотни тыщ файлов за сотню другую дней. Попробу совсем тупо: взял файл, посмотрел его дату, пошел по директории собирать в архив файлы с этой же датой и т.д. (сортировать лень )). Осталось только найти как окргулять дату до дня ) Сотня дней - фигня делов. Потянет. Делай. Сотня OutputStream-ов не равна суммарному объёму файлов. Стрим это стрим. А файл это файл. Не одно и тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 17:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39198897&tid=2124245]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
137ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 425ms |

| 0 / 0 |
