Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > не открывается файл


Автор: libricon 6.6.2009, 11:41
добрый день,  у меня возникла проблема с кодом

Код

                        Package pack = SportmanLoader.class.getPackage();
        System.out.println(pack.getName());
        String dirName = pack.getName().replace(".", File.separator);
        File dirFile = new File(dirName);
        System.out.println(dirFile.isDirectory());
        System.out.println(dirFile.getAbsolutePath());
        
        String[] files = dirFile.list();
        System.out.println(Arrays.deepToString(files));


самое интересно что путь верный, но файл. тот что создается на исдиректори фалсе и на исфайл тоже фолс, т.е он ни то ни се.

цель этого кода в конке концов мне надо получить все файлы из данного пакета и потом найти в этих файлах все классы выполняющие интерфейс SportmanLoader

если кто знает, почему он не открывается .. помогите начинающему программисту smile

Добавлено через 10 минут и 5 секунд
Код

URL file = SportmanLoader.class.getResource(".");
        File dir = new File(file.toURI());
        System.out.println(dir.getAbsolutePath());
        System.out.println(dir.isDirectory());
        File[] filesInDir = dir.listFiles();
        System.out.println(Arrays.deepToString(filesInDir));



а вот этот код работает и выдаёт список файлов....  
кто-нибуть может обьяснить почему первый вариант не работал?  абсолютные пути файлов одинаковые....


PS!  кто бы теперь подсказал как загружать классы, проверять их на интерфейс и ещё специфический конструктор вызывать smile

Автор: math64 7.6.2009, 18:21
Работать с файлами - неправильно. Если программа находится в jar - файлов и каталогов не будет.

Автор: libricon 7.6.2009, 19:40
программа не в джар файле....


пока получилось вот так, работает 
Код
private Map<String, AthleteWriter> getWriters() throws URISyntaxException, ClassNotFoundException, InstantiationException, IllegalAccessException  {

        URL pack = AthleteWriter.class.getResource(".");
        File dir = new File(pack.toURI());
        String[] files = dir.list();
        Map<String, AthleteWriter> argVSclass = new TreeMap<String, AthleteWriter>();
        for (String file : files) {
            if (file.endsWith(".class")) {
                Class unknowClass = Class.forName(AthleteWriter.class.getPackage().getName() + '.'
                        + file.substring(0, file.length() - 6));
                if (isInterface(unknowClass, AthleteWriter.class.getSimpleName())) {
                    //System.out.println(unknowClass.getSimpleName());
                    AthleteWriter temp = (AthleteWriter) unknowClass.newInstance();
                    //System.out.println(temp.getArgum()+"  " + temp.getDescription());
                    argVSclass.put(temp.getArgum(), temp);
                }
            }
        }

        return argVSclass;

    }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)