Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Замена символов имени файла

Автор: ruzik 1.6.2012, 21:56

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

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

Автор: ViGOur 1.6.2012, 22:24

Если быть честным не могу понять, в чем именно проблема с точкой?
Ну есть например у нас иконка нашего сайта, качаем favicon.ico и называем crossplatform.ru.ico и всё.

Автор: ruzik 1.6.2012, 22:56

Я так и пытался сделать:

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

Я нашел свою ошибку, и еще один вопрос на последок:
В Linux и Mac Os X можно ли так же использовать точки в имени файла, кроме как для обозначения расширения

Автор: ViGOur 2.6.2012, 10:22

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

Linux и Mac Os точка в начале используется для обозначения скрытого файла или директории.

Автор: ruzik 2.6.2012, 21:49

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

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)