Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
1

Недопустимый символ в имени файла

29.03.2014, 05:29. Просмотров 871. Ответов 5
Метки нет (Все метки)

Приветствую. Господа есть список файлов к каждому из них нужно получить MIME тип. С этим со всем проблем нет. Но как только в имени файла встречается # выскакивает StringIndexOutOfBoundsException и что то совсем непонятно какого фига. Убираю # все работает, что наталкивает на мысль, что этот символ недопустим в имени файла. Но в списке недопустимых символов я его не нашел. Вообщем как обойти этот казус? Файловый менеджер в телефоне отображает все это дело без каких то проблем. Очень не хочется заморачиваться с парсером имен файлов для выявления "плохих" символов. Подскажите ченить)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 05:29
Ответы с готовыми решениями:

Динамическая смена имени ресурсного файла изображения
Добрый день уважаемые форумчане! небольшой кусок кода: int z1,q1; z1 =...

Несколько фонов для приложения. Как загружать каждый по его номеру в имени файла
Всем доброго вечера! Такая вот проблема: Мне нужно создать программу,...

RESOURCE_LIMIT - Во входном файле недопустимый символ 0
С помощью команды show parameter pfile посмотрел имя файл инициализационных...

Как обойти недопустимый символ при записи данных в БД
Мое почтение. Ситуация:Через форму, сделанную в VB.Net, информация заносится в...

Xml содержит недопустимый символ в позиции 0 ¬. чтение штрихкода
Здравствуйте! подключили древний сканер штрихкода RealScan 7832. При тестовом...

5
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
29.03.2014, 23:39 2
Цитата Сообщение от KillAndEat Посмотреть сообщение
Подскажите ченить
Показывайте проблемный кусок кода и стектрейс.
0
verylazy
Заблокирован
30.03.2014, 09:05 3
Я где то читал, что # используется для разделения чего-то в URI адресах. Может в этом дело?
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
31.03.2014, 12:36  [ТС] 4
angryrobot,

вылет в этом методе

Java
1
2
3
4
public String getMIME(File file) {
        FileNameMap fileNameMap = URLConnection.getFileNameMap();
        return fileNameMap.getContentTypeFor(file.getAbsolutePath());
    }
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Thread [<1> main] (Suspended (exception StringIndexOutOfBoundsException))   
    <VM does not provide monitor information>   
    String.startEndAndLength(int, int) line: 593    
    String.substring(int, int) line: 1474   
    DefaultFileNameMap.getContentTypeFor(String) line: 38   
    FileManagment.getMIME(File) line: 31    
    FileManagment.getList(String) line: 89  
    SystemOverview.updateList(String) line: 58  
    SystemOverview.onListItemClick(ListView, View, int, long) line: 46  
    ListFragment$2.onItemClick(AdapterView, View, int, long) line: 58   
    ListView(AdapterView).performItemClick(View, int, long) line: 298   
    ListView(AbsListView).performItemClick(View, int, long) line: 1088  
    AbsListView$PerformClick.run() line: 2861   
    AbsListView$1.run() line: 3535  
    Handler.handleCallback(Message) line: 615   
    ViewRootImpl$ViewRootHandler(Handler).dispatchMessage(Message) line: 92 
    Looper.loop() line: 137 
    ActivityThread.main(String[]) line: 4765    
    Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
    Method.invoke(Object, Object...) line: 511  
    ZygoteInit$MethodAndArgsCaller.run() line: 791  
    ZygoteInit.main(String[]) line: 558 
    NativeStart.main(String[]) line: not available [native method]


verylazy, может и по этому) как обойти то)
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
31.03.2014, 13:08 5
Цитата Сообщение от KillAndEat Посмотреть сообщение
вылет в этом методе
Попробовал, и у меня та же проблема. Есть простое решение: Передавайте в метод getContentTypeFor только расширение файла (вместе с последней точкой). Тогда всё заработает
1
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
31.03.2014, 13:34  [ТС] 6
angryrobot, смахивает на частное решение. Вдруг каким то чудесным образом этот символ окажется в расширении. Не хотелось бы чтоб приложение падало из за этого.

Java
1
2
3
4
5
6
7
[SPOILER]String type = null;
        String extension = MimeTypeMap.getFileExtensionFromUrl(URL);
        if (extension != null) {
            MimeTypeMap mime = MimeTypeMap.getSingleton();
            type = mime.getMimeTypeFromExtension(extension);
        }
        return type;[/SPOILER]
вот так все работает. может пригодится кому
0
31.03.2014, 13:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 13:34

Как сделать проверку на наличие похожего имени файла и запрос нового имени файла?
При загрузке изображения присваивается имя foto.jpg. Вопрос, как сделать...

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

вывести символы в следующем порядке: первй символ из входного файла, последний символ, второй символ, предпоследний смвл
Дан файл in.txt, содержащий текст. Требуется вывести в файл out.txt символы в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru