Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для TurboDuck
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401

Открыть папку на сервере

12.01.2017, 08:56. Показов 2325. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые коллеги

Подскажите, пожалуйста, что делаю не так? Хочу написать метод, который проверяет есть ли папка на сервере, если есть то открыть, если нет то создать по полученному названию папки через переменную String folderName:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 String fileFolder = "\\\\serverName\\files\\File Exchange" + folderName;
       
    File f = new File(fileFolder);
    if (f.exists()) {
        try {
            // открыть файлы на сервере - cюда заходит по условию - проверял. Но не открывает папку.
            Desktop.getDesktop().open(new File(fileFolder));
        } catch (IOException ex) {
            Logger.getLogger(WorkingWindow.class.getName()).log(Level.SEVERE, null, ex);
        }
    } else {
          // если папки все таки нет - создает без проблем
        new File(fileFolder).mkdir();
        JOptionPane.showMessageDialog(null, "Папка успешно создана!");
    }
Проблема думаю здесь, но не могу понять в чем? Вроде бы все правильно сделал...
Java
1
Desktop.getDesktop().open(new File(fileFolder));
Заранее благодарю за любую помощь!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.01.2017, 08:56
Ответы с готовыми решениями:

Как на ftp-сервере сделать папку для всех и папку для некоторых?
ubuntu 12.10 помогите пожалуйста, столкнулся с проблемой создания фтп сервера создается фтп сервер заходит, но каждый пользователь...

Можно ли открыть открыть папку а вместо неё открылась программа?
Привет, народ. У меня короче возникла идея написать прогу для запароливания папки. Прогу написал в проге Алгоритм 2 сейчас не знаю как...

Php создать папку на сервере
ОС Ubuntu, установил apache по инструкции, сделал виртуальный хост в /var/www/www.example.com и пытаюсь создать папку <?php...

3
50 / 49 / 25
Регистрация: 05.02.2016
Сообщений: 146
12.01.2017, 09:57
TurboDuck, а если шары нет, то как вы ее создадите?
Вообще, ИМХО, так решать задачу не корректно, хотя бы потому, что такое решение будет работать только под виндой.
Какая общая задача? Может проще смонтировать сетевую шару куда-то и тогда проблема создания там папочек будет решаться просто и на всех ОС.
0
 Аватар для TurboDuck
50 / 49 / 13
Регистрация: 23.11.2015
Сообщений: 401
13.01.2017, 09:09  [ТС]
Max_Sys, общая задача: есть клиент на Swing, который работает по принципу CRUD с БД MySQL, есть сервер с файлообменником, иногда пользователям необходимо приложить какие то файлы к документу. Необходимо сделать кнопку, которая по нажатию, либо открывает уже созданную папку (с именем ID номера документа), либо создает папку, если папки не существует.

Добавлено через 12 минут
Кстати, тут наткнулся на такой вариант. Раз использую Swing, использовать JFileChooser.

Добавлено через 10 минут
Не блин, это не то...

Добавлено через 3 минуты
Проблема с открытием папки, только на сервере. На локальном HDD код работает идеально. В чем может быть причина? Подскажите, пожалуйста, кто сталкивался.

Добавлено через 10 минут
Нашел проблему.
Java
1
Error message: Не удается найти указанный файл.
Предпоследняя папка в пути - название на русском языке, из двух слов, с пробелом между ними. До нее открывает без проблем. Проблема именно в этой русскоязычной папке. Переименовать возможности нет. Как то надо решать.

Добавлено через 8 минут
Протестировал, проблема не в русском языке даже, а в пробеле в названии папки. Надо экранировать пробел.

Добавлено через 38 минут
Проблема в том, что заменяет пробел на символ %20 и Windows не открывает путь с таким символом в строке. В офф документации Oracle экранирование пробелов не нашел, character escaping только для других символов.
А как советую вместо экранирования написать слешы по формату Windows - тоже не работают С:\Document and settings\... Проект на JDK 6

Добавлено через 33 минуты
Похоже проблема в самом конструкторе
Java
1
new File(fileFolder)
. Строка после "escape пробела" выходит нормальная и при вставке в строку Windows Explorer открывается без проблем. Однако конструктор меняет любой пробел на %20 и Windows с этим не работает с строке пути.

Есть ли другой вариант открытия папки стандартными средствами ОС? Буду благодарен за инфу.

Добавлено через 7 минут
Решено!
Проблема решается тем, что не надо использовать класс Desktop, потому что, при передаче, в каком бы вы виде не передовали строку пути, содержащую пробел, он будет заменен в конструкторе на %20 и Windows это не понравится. Решается использованием Runtime.getRuntime():
Java
1
Runtime.getRuntime().exec("explorer " + fileFolder);
Тему можно закрывать.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
13.01.2017, 20:29
Цитата Сообщение от TurboDuck Посмотреть сообщение
\\\\serverName\\
Так не будет работать, это сугубо виндовый (точнее Explore'овский) формат пути, насколько я понимаю. Либо гугли Java SMB, либо подключай в винде сервак как сетевой диск и используй потом как обычно "Буква диска:\\files\\File Exchange"

Цитата Сообщение от TurboDuck Посмотреть сообщение
А как советую вместо экранирования написать слешы по формату Windows - тоже не работают
Чего? Бэкслеш в джава-строке — это символ экранирования, поэтому его нужно экранировать, если хочется, чтобы он был в строке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2017, 20:29
Помогаю со студенческими работами здесь

Создать папку на сервере средствами PHP
Необходимо на сервере открыть существующую папку, имя которой AllFolders. И создать в ней папку с определенным именем. Процесс работы...

Разместить файл на папку в FTP сервере
Здравствуйте, Вот так передаю файлы на сервер: Option Explicit Private Declare Function InternetOpen Lib "wininet.dll" Alias...

FTP доступ в папку на VPS сервере
Пытаюсь создать юзера с FTP доступом в одну из папок на VPS сервере. Задача - дать юзеру возможность размещать в папке файл, текст из...

Закачать бинарный файл в папку на сервере
Есть <input type='file' name = 'photo'> Как поместить отосланный бинарный файл в определенную директорию на сервере? Где располагается...

QNetworkAccessManager создать папку на ftp сервере
Пишу програмку. на компе у пользователя програмка ищет файлы с определенным расширением, в основном это ворд и эксель, и потом все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru