Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.12.2011, 19:34
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 1  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
По умолчанию AIR. Как открыть несколько папок с файлами?

Здравствуйте. Делал как-то мп3 плеер. Есть каталог "Музыка" (5Гб). В нем каталоги: "Поп", "Рок", "Рэп" и пр. в которых разные каталоги и файлы мп3. И встала задача: Окрыть эту папку "Музыка" и поместить ее в плей-лист. Такое мне не удалось реализовать, поэтому обошелся банальным browseForOpenMultiple() и перетаскиванием одного или нескольких файлов с помощью NativeDragManager. Но месяц спустя мне стало интересно можно ли все-таки такое сделать? Ведь даже в том же Windows Media Player я могу перетянуть целые папки, программа отфильтрирует медиа - файлы и вставит их в плей лист.
Вот ход моих мыслей: С помощью browseForDirectory выбираем нужную нам папку. Или с помощью NativeDragManager перетаскиваем нужную папку из проводника. В первом и втором случае мы будем иметь обьект File ссылающийся на эту папку. Теперь ступор! Как отфильтрировать эту папку, чтобы в приложение поступили только мп3 файлы? Проверять каждый подкаталог - является ли он каталогом, потом проверять каждый файл в нем, является ли он мп3, потом переходить к другой папке и т.д. это бред. Если вложенность каталогов будет хотя бы 20, то эйр на таком цикле просто вылетит. Какие у Вас, господа мысли по этому поводу? Или есть где-то встроенные методы, которые я просто пропустил?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 14.12.2011, 19:38
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 2  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
File#getDirectoryListing
__________________
Кодинг, багинг, алгоритминг. me @

Старый 14.12.2011, 19:49
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 3  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
This method does not explore the contents of subdirectories
Так что все равно придется проверять каждый подкаталог и подкаталог каждого подкаталога еще раз и еще раз проходясь по массиву... и так пока не проверю все папки. Кто его знает на сколько долгим и вложенным может оказаться цикл.

Добавлено через 2 минуты
Кроме того, в цыкле мне нужно проверить, является ли каждый файл mp3, а не txt или jpg и только тогда добавлять его в плей-лист
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 14.12.2011, 22:01
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 4  
Ответить с цитированием
goodguy
Banned

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
для этого пишутся рекурсивные функции
как-то писал подобное, но что-то не могу найти

Старый 14.12.2011, 22:29
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 5  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Ну это понятно. Вот сейчас как раз думаю, как написать такую функцию, чтобы она была независима от выполнения основного кода. Ведь если на долго зациклить, то комп не выдержит. Думаю привязать ее к таймеру и с течением времени обрабатывать определенное количество файлов.
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 15.12.2011, 11:21
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 6  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
http://cookbooks.adobe.com/post_Recu...sing-9410.html
__________________
Кодинг, багинг, алгоритминг. me @

Старый 16.12.2011, 00:59
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 7  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
DaFive, спасибо большое, метод хороший. Даже красивее, чем та пародия, над которой я ломал голову. Папку с тремя папками и 100 картинок пролистал мгновенно. А вот когда рискнул в него передать: "C:/Windows/", AIR загнулся, как наша корова... Можно этот метод сделать как-то независимым от времени. Что-то типа, как я описал постом выше?
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 16.12.2011, 10:41
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 8  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
По таймеру и сделать. Я не думаю, что 10000 файлов в папке, даже пусть с тройной вложенностью создадут помехи. Но асинхронное чтение должно помочь, я думаю что так читают всякие там аимпы и винампы.
__________________
Кодинг, багинг, алгоритминг. me @

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.