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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> инфа о файле, вытащить инфу о файле 
:(
    Опции темы
Rusico
Дата 18.5.2004, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый день. У меня есть небольшая проблемка: необходимо вытащить инфу о файле, а именно его родительский каталог. обычно это делается так:

File f = new File(fname);
f.getParent();


Но дело в том, что эта инфа нужна о самом CLASS-файле. Как это сделать?
Заранее спасибочки. smile.gif
PM MAIL   Вверх
AntonSaburov
Дата 18.5.2004, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

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



Цитата
о дело в том, что эта инфа нужна о самом CLASS-файле.

Что это значит ?
Ты имеешь в виду, что тебе нужна информация о классе, который лежит в файле .CLASS ?

Тогда посмотри в сторону класса Class. Там есть все необходимое.
PM MAIL WWW ICQ   Вверх
Domestic Cat
Дата 18.5.2004, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Код

import java.io.File;
import java.io.IOException;

public class Test
{
   Test() throws IOException
   {
       String name = this.getClass().getName() + ".class";
       File f = new File(name);
       f = new File(f.getAbsolutePath());
       System.out.println(f.getParent());
   }

    public static void main(String [] args)
   {
       try
       {
               Test test = new Test();
        }
        catch (IOException ioe)
        {
              ioe.printStackTrace();
         }
   }
}



--------------------

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


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

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



2 Domestic Cat
Этот прием не всегда срабатывает, например если class файл находится не в текущем каталоге он не сработает.
Есть еще другой вариант:
ClassLoader.getSystemClassLoader().getResource("java/lang/Object.class")
выдает: jar:file:/C:/Soft/Programming/JBuilderX/jdk1.4/jre/lib/rt.jar!/java/lang/Object.class
а MyClass.class.getClassLoader().getResource("MyClass.class")
выдает: file:/C:/Documents%20and%20Settings/root/JProjects/Temproject/classes/MyClass.class


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 18.5.2004, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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




Код

String name = this.getClass().toString() + ".class";
System.out.println(new File(this.getClass().getClassLoader().getResource(name).toString()).getParent());


Tem ne menee dlya package eto rabotat' ne budet, a absolutePath (canonicalPath) srabotaet.


--------------------

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


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

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



Цитата(Domestic @ 18.5.2004, 19:55)
Tem ne menee dlya package eto rabotat' ne budet, a absolutePath (canonicalPath) srabotaet.

Что вы имеете ввиду?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 18.5.2004, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Esli class pomeshen v pakage (package mypackage;) to privedenniy vami kod rabotat' ne buded i brosit NullPoinerException(hotya dlya default package on zarabotaet).

absolutePath srabotaet i dlya classa pomeshennogo v package.


--------------------

PM   Вверх
LSD
Дата 18.5.2004, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

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



Ну конечно надо приводить полное имя класса с package, кстати для Object я так и написал.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 18.5.2004, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Togda nado uznavat polnii put' k classu; no getPagent dast parent dlya etogo classa a ne dlya package (skazhem, dlya Object vydalo by file:/.../lang).

Nu, chego Rusico nado ya ne v kurse, poetomu adv/burnout.gif


--------------------

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


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

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



2 Domestic Cat
Я попробовал ваш код для классов прописанных в CLASSPATH (и в jar и не jar), он выдает неправильный результат, он просто выдает текущую директорию.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Domestic Cat
Дата 19.5.2004, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Da ya i soglasen, on budet rabotat' s tolko s tekushey directoriey - nehoroshii kod smile.gif.

Цитата
необходимо вытащить инфу о файле, а именно его родительский каталог


tut neponyatno gde class - v package ili net. Esli v package to kakoy catalog - classa ili package?

A s kodom Vy pravy.





--------------------

PM   Вверх
Rusico
Дата 20.5.2004, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здавствуйте, извините, что так долго отсутствовал, просто выход в НЕТ имею исключительно в рабочие дни. Отвечаю на доп. вопросы, если кому ещё интересно:

1. Мой класс находится в пакете;
2. Если поподробнее, суть вопроса такова:
Странно, но если мой пакет с классом находится не в C:\JBuilder7\jdk1.3.1\bin, то я не могу прописывать относительные пути к файлам.

Спасибо за столь оживлённое обсуждение, обязательно попробую все из вышеприведённых способов.
PM MAIL   Вверх
LSD
Дата 20.5.2004, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15709
Регистрация: 24.3.2004

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



Что значит относительные пути, относитально code base или отностительно текущей директории?
Если относитально code base то пишешь так:
Код
Resources.class.getResource("/mypackage/applicationIcon.gif")
и вы получите URL относительно расположения текущего package если в начале не писать "/" то путь будет относительно текущего класса.
Для получения пути относительно тукущего каталога пишите:
Код
new File("./<путь>")
.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
breeezy
Дата 1.6.2004, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пишу сюда, потому что по теме.
Дяденьки гуру, просветите, пожалуйста!
Необходимо вытащить инфу о файле, а именно не только lastModified(), но и время создания и прочее - все, что возможно выжать.

Класс File явно чего-то недоговаривает. Что ж такое то...

PM ICQ   Вверх
Domestic Cat
Дата 1.6.2004, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Sm. zdes':

java.io.File

Opredelit' datu/vremya sozdaniya faila v Java (core classes) nelzya. Skoree vsego eto svyazano s ne s Java a s host OS.
U apacha naprimer takaya biblioteka est'

Jakarta Apache


--------------------

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

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

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


 




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


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

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