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


Автор: Andyb 24.1.2005, 14:00
Возможно ли средствами Java получить ассоциации файлов с приложениями н-р *.txt c Notepad.exe и все остальные

Автор: AntonSaburov 24.1.2005, 14:07
Мне кажетсф, что нет. Только через JNI. Хотя если вдруг найжешь что - опубликуй. Скажем БОЛЬШОЕ СПАСИБО.

Автор: LSD 29.1.2005, 01:18
Мона smile
Код

OutputStream out = Runtime.getRuntime().exec("assoc").getOutputStream();

данные читаешь из out, но там не приложения а имена ассоциаций. А ассоциации можно изменить с помощью ftype.

Автор: Domestic Cat 29.1.2005, 01:34
Цитата(LSD @ 28.1.2005, 16:18)
данные читаешь из out, но там не приложения а имена ассоциаций. А ассоциации можно изменить с помощью ftype.


Это уже шулерство. А потом заказчик скажет что под юнихом не пашет smile

Автор: LSD 29.1.2005, 01:47
Цитата(Domestic @ 29.1.2005, 01:34)
Это уже шулерство.

Я сам видел программу которая была мультиплатформенной, написанна софтваре фрмой №2 и работала с реестром похожим способом. Просто под *nix выполнялся другой код который давал аналогичные результаты.
Так что, ловкость рук и никакого мошенничества smile

Автор: Domestic Cat 29.1.2005, 01:56
Цитата(LSD @ 28.1.2005, 16:47)
Просто под *nix выполнялся другой код который давал аналогичные результаты.


Отож smile

Автор: LSD 29.1.2005, 17:59
Если посмотреть в сторону java.util.prefs.Preferences, там делается нечто подобное. Интерфейс вернего уровня общий, а реализация различается. Главное не забывать, что кроме Windows есть и другие ОС, и Java программа должна и под ними работать.

P.S. assoc и ftype есть в Win2000 и позже, а вот насчет NT и 9X я не уверен.

Автор: polosatij 31.1.2005, 21:36
извините, что вмешиваюсь.. но никак не могу понять, что такое "ассоциация"..
поскольку разговор ведёте на ету тему, не обьясните пока ещё "маленькому волшебнику"? smile

Автор: Domestic Cat 31.1.2005, 21:44
это значит с каким приложением ассоциировано данное расширение, например .doc -> MS Word, .cs -> VS.NET итп

Автор: LSD 31.1.2005, 21:47
Файловые ассоциации - это программы связанные с определенными типами файлов, проще говоря когда ты щелкаешь на документ ворд, у тебя запускаетя ворд и открывает этот документ.

P.S. А вот и сайт для http://lyssymussu.ru/forum/, начинающих и уже опытных smile .

Автор: Andyb 1.2.2005, 16:00
Цитата

Код 
   OutputStream out = Runtime.getRuntime().exec("assoc").getOutputStream();
данные читаешь из out, но там не приложения а имена ассоциаций. А ассоциации можно изменить с помощью ftype.

ни assoc ни ftype не работает....(WindowsXPSP2)
smile Please!!!!

Автор: LSD 2.2.2005, 23:21
Вот так работает:
Код
public static void main(String[] args) throws Exception
{
 Process process = Runtime.getRuntime().exec("cmd /C assoc");
 Reader reader = new InputStreamReader(process.getInputStream());
 int ch;
 while((ch = reader.read()) != -1)
   System.out.print( (char) ch);

 process = Runtime.getRuntime().exec("cmd /C ftype");
 reader = new InputStreamReader(process.getInputStream());
 while((ch = reader.read()) != -1)
   System.out.print( (char) ch);
 process.destroy();
}

Автор: Andyb 3.2.2005, 08:50
Спасибо большое!!! smile

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