Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Список файлов в папке. как получить? 
V
    Опции темы
jone31
  Дата 17.10.2009, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



Здрасти, нужна помощь по двум вопросам:
1) как узнать сколько файлов находится в папке???

2) как из вышеполученной цифры выбрать случайный номер???

заранее благодарен.

Добавлено через 2 минуты и 32 секунды
случайный номер сейчас выбираю так:
Код
int R = (int) ((Math.random()*9));  , где 9 - кол-во файлов.

но думаю что это не совсем правильно...
PM MAIL   Вверх
Sadness
Дата 18.10.2009, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 11.5.2008

Репутация: нет
Всего: нет



Ну например так:
Код
import java.io.File;

public class Main {

    public static void main(String[] args) {

    String path = "/path/folder";

    File file = new File(path);

    int count = file.listFiles().length;

    int number = (int) ((Math.random() * count));

    }

}


PM MAIL   Вверх
magicfly
Дата 18.10.2009, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 21.2.2007

Репутация: нет
Всего: 1



Лучше не использовать класс Math лучше использовать класс Random
Random.nextInt(n) возвращает число(Int) от нуля включительно до n невключительно.
Хотелось бы так же заметить что file.listFiles() вернет так же директории
PM MAIL   Вверх
Sadness
Дата 18.10.2009, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 11.5.2008

Репутация: нет
Всего: нет



Цитата(magicfly @ 18.10.2009,  02:54)
Лучше не использовать класс Math лучше использовать класс Random
Random.nextInt(n) возвращает число(Int) от нуля включительно до n невключительно.
Хотелось бы так же заметить что file.listFiles() вернет так же директории

Перед сном уже писал пример, не заметил что он работает не корректно smile
Вот изменил:
Код

import java.io.File;
import java.io.FileFilter;
import java.util.Random;

public class Main {

    public static void main(String[] args) {

    String path = "/path/folder";
    File file = new File(path);

    File[] files = file.listFiles(new FileFilter() {

        @Override
        public boolean accept(File filename) {
        return filename.isFile();
        }
    });

    int count = files.length;
    
    Random random = new Random();
    int number = random.nextInt(count);

    }

}


PM MAIL   Вверх
jone31
  Дата 18.10.2009, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



Цитата(Sadness @  18.10.2009,  13:45 Найти цитируемый пост)
Перед сном уже писал пример, не заметил что он работает не корректно Вот изменил: .......


выдаёт ошибку
Код
java.lang.NullPointerException: Null Pointer while evaluating: files.length
        at bsh.Name.consumeNextObjectField(Unknown Source)
ERROR - java.lang.NullPointerException: Null Pointer while evaluating: files.len
gth
        at bsh.Name.toObject(Unknown Source)
ERROR -
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
ERROR -         at bsh.Name.consumeNextObjectField(Unknown Source)
        at bsh.BSHAmbiguousName.toObject(Unknown Source)
ERROR -
        at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHPrimaryExpression.eval(Unknown Source)ERROR -         at bsh.N
ame.toObject(Unknown Source)

ERROR -
        at bsh.BSHVariableDeclarator.eval(Unknown Source)ERROR -        at bsh.B
SHAmbiguousName.toObject(Unknown Source)

        at bsh.BSHTypedVariableDeclaration.eval(Unknown Source)ERROR -

        at bsh.BSHBlock.evalBlock(Unknown Source)ERROR -        at bsh.BSHAmbigu
ousName.toObject(Unknown Source)

        at bsh.BSHBlock.eval(Unknown Source)ERROR -

ERROR -         at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.BSHBlock.eval(Unknown Source)
ERROR -
        at bsh.BSHIfStatement.eval(Unknown Source)
ERROR -         at bsh.BSHPrimaryExpression.eval(Unknown Source)
        at bsh.Interpreter.eval(Unknown Source)ERROR -

        at bsh.Interpreter.eval(Unknown Source)ERROR -  at bsh.BSHVariableDeclar
ator.eval(Unknown Source)

        at bsh.Interpreter.eval(Unknown Source)ERROR -

        at ru.jimbot.modules.WorkScript.startAdminScript(WorkScript.java:131)ERR
OR -    at bsh.BSHTypedVariableDeclaration.eval(Unknown Source)

        at ru.jimbot.modules.chat.RobAdmin.parse(RobAdmin.java:84)ERROR -

        at ru.jimbot.modules.chat.RobAdmin.run(RobAdmin.java:276)ERROR -
at bsh.BSHBlock.evalBlock(Unknown Source)

        at java.lang.Thread.run(Unknown Source)
ERROR -
ERROR -         at bsh.BSHBlock.eval(Unknown Source)
INFO - Ошибка скрипта: Sourced file: inline evaluation of: ``import java.util.Ve
ctor; import java.util.concurrent.ConcurrentLinkedQueue; impo . . . '' : Typed v
ariable declaration


PM MAIL   Вверх
Sadness
Дата 18.10.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 11.5.2008

Репутация: нет
Всего: нет



Ты наверное задал не верный путь к директории с файлами, замени /path/folder на свой путь. Также если в директории не будет файлов вылетит IllegalArgumentException.
PM MAIL   Вверх
jone31
  Дата 18.10.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



Цитата(Sadness @  18.10.2009,  21:11 Найти цитируемый пост)
Ты наверное задал не верный путь к директории с файлами, замени /path/folder на свой путь. Также если в директории не будет файлов вылетит IllegalArgumentException.

не, с путями все вроде правильно.

Добавлено через 13 секунд
и файлы тоже в папке есть. 
PM MAIL   Вверх
Sadness
Дата 18.10.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 11.5.2008

Репутация: нет
Всего: нет



У тебя в логах куча ошибок явно не из моего класса smile
Возьми отдельно создай файл Main.java скопируй туда мой класс, скомпилируй и запусти из консоли smile и добавь в коде вывод переменных count и number чтоб убедиться что корректно отработало.
PM MAIL   Вверх
jone31
  Дата 19.10.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 343
Регистрация: 29.11.2008

Репутация: нет
Всего: нет



я уже разобрался. Спасиб все работает
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0481 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.