crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Замена символов имени файла
ruzik
  опции профиля:
сообщение 1.6.2012, 21:56
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Здравствуйте, существует следующая задача:
Нужно скачать иконку с сайта и сохранить её, именем должно быть имя сайта. Но проблема в точке в адресе сайта из-за которой возникает проблема сохранения иконки с таким именем. Соответственно нужно как-то заменить эти точки(восстанавливать имя сайта из названия иконки также требуется).
Но заменив на символы типа -_ и тд, можно добиться неправильной трактовки, например иконки этих сайтов будут совпадать:
forum-site.com
forum.site.com
Есть ли такой символ, который может быть включен в название иконки, но не может быть частью адреса сайта?
Должно работать на Windows, Mac Os X и Linux.
Заранее спасибо!

Символ уже придумал - левая или правая скобка.
Теперь вопрос на всех ли трех системах, указанных мною, скобка может быть частью имени файла.
На Windows - да может.
А вот Mac Os X и Linux возможности проверить нет, не подскажите как там с этим дело?

Сообщение отредактировал ruzik - 1.6.2012, 21:48
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 1.6.2012, 22:24
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Если быть честным не могу понять, в чем именно проблема с точкой?
Ну есть например у нас иконка нашего сайта, качаем favicon.ico и называем crossplatform.ru.ico и всё.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 1.6.2012, 22:56
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Я так и пытался сделать:
bool RIconManager::addIconInCache(const QString &iconName, QIcon icon)
{
    //If there is no cache dir create it
    QDir iconCacheDir(QApplication::applicationDirPath() + "/iconCache/");
    if (!iconCacheDir.exists())
        if (!iconCacheDir.mkdir(QApplication::applicationDirPath() + "/iconCache/"))
            return false;
    //Save icon in cache
    qDebug() << iconCacheDir.path() + '/' + iconName + ".ico";
    return icon.pixmap(48, 48).save(iconCacheDir.path() + iconName + ".ico");
}

Выводились имена типа:
"C:/Users/ruzik/Documents/my_projects/Debug/iconCache/ru.wikipedia.org.ico"
Но функция возвращала false из последней строчки, то есть по каким-то причинам данные в файл не сохранялись
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 2.6.2012, 10:10
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Я нашел свою ошибку, и еще один вопрос на последок:
В Linux и Mac Os X можно ли так же использовать точки в имени файла, кроме как для обозначения расширения
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 2.6.2012, 10:22
Сообщение #5


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(ruzik @ 2.6.2012, 11:10) *
Я нашел свою ошибку
ну так скажи в чем она была, чтобы другие вставшие на твои грабли знали о ней.

Linux и Mac Os точка в начале используется для обозначения скрытого файла или директории.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ruzik
  опции профиля:
сообщение 2.6.2012, 21:49
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Ошибка была немного в другом месте, не относящимся к сохранению иконок, а именно в парсинге адреса сайта для составления из него имени иконки туда затесывалось двоеточие в некоторых случаях и именно эти случаи были рассмотрены как тестовые, что и привело к ошибке
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 17:26