| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > как скопировать файл в клипбоард? |
| Автор: cube 24.7.2009, 17:11 |
| собственно сабж, как? |
| Автор: LSD 24.7.2009, 18:13 |
| Смотря что ты подразумеваешь под файлом. Если нужно поведение аналогичное поведению Explorer, то тебе нужно скопировать в буфер путь к файлу и дать ему data flavor - DataFlavor.javaFileListFlavor. |
| Автор: cube 25.7.2009, 14:01 | ||||
Да именно так и нужно, нашел в этом форуме подобную тему: http://forum.vingrad.ru/topic-178034.html так же попробовал использовать но при вставке в эксплорере файла получаю, что системе не удается прочитать файл или каталог с диска или с файла??? почему?
Данный файл создается и записывается значениями, я могу в эксплорере сам скипировать его и потом вставить, но через программу такое не получается |
| Автор: LSD 27.7.2009, 12:44 |
| Хотелось бы пример, который можно скомпилировать и запустить. |
| Автор: cube 27.7.2009, 13:29 | ||||
Я использую Пои незнаю удобно будет тебе или нет подключить его, но для примера можно закоментить poi а создать простой текстовый файл и вставить его в клипбоард
|
| Автор: LSD 27.7.2009, 19:24 | ||||||||
Вот так:
у меня все работает. 1. Вместо этого безобразия:
используй соответвующий конструктор:
2. Проверь путь в file, возможно его стоит сконвертировать в канонический:
|
| Автор: cube 28.7.2009, 11:42 | ||
да у тебя работает, я так же попробовал создал каталог на диске туда записал файл в клипбоард вставился, но вот так не работает:
скриншот |
| Автор: LSD 28.7.2009, 16:22 | ||
1. getCanonicalFile() возвращает новый File
2. Почему у тебя на переднем плане NetBeans и твое приложение, а не Explorer? |
| Автор: cube 28.7.2009, 16:35 | ||||
И так тоже у меня не получилось ((( Я просто думал что getCanonicalFile() еще и "исправляет путь" на правильный в системе, сейчас почитал в апи понял что он возвращает новый файл. нетбинс открыт для наглядности (типа у меня такой файл есть, путь к этому файлу такой же как и в нетбинсе, т.е. путь правильный) но при вставке например на рабочий стол, выскакивает эта ошибка... Я сейчас пробую все варианты, и руками задаю пути, кстати когда задаешь руками путь, так же как в твоем примере все работает Ок, но так как моя программа будет устанавливаться через инсталлер, и я не знаю куда ее установят, хотелось бы чтобы путь к файлу воспринимался именно как System.getProperty("user.dir") з.ы. спасибо тебе ты помогаешь мне, мне даже не ловко, это моя проблема, а ты выручаешь.... |
| Автор: LSD 29.7.2009, 17:09 |
| Интересная проблемка Вообщем ошибка происходит когда пусть содержит русские буквы, если только латиницу, то все ОК. И проблема как всегда в кодировках NetBeans (впрочем как и большинство IDE) при запуске приложения меняет умолчальную кодировку (обычно на UTF-8, как на самую универсальную) и именно ее использует приложение при передаче данный ОС. Т.е. Windows ожидает данный в windows-1251 кодировке, а получает в UTF-8. Соответвенно вместо нормального пути она получает обракадабру которую не может прочитать. Надо или изменить настройки NetBeans и сказать, чтобы он не трогал умолчальную кодировку, или запускать из командной строки. |