Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ruzik от Июнь 01, 2012, 21:47



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


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


Название: Re: Замена символов имени файла
Отправлено: Alex Custov от Июнь 01, 2012, 22:58
Но проблема в точке в адресе сайта из-за которой возникает проблема сохранения иконки с таким именем.

Цитировать
bool QImage::save ( const QString & fileName, const char * format = 0, int quality = -1 ) const

Saves the image to the file with the given fileName, using the given image file format and quality factor. If format is 0, QImage will attempt to guess the format by looking at fileName's suffix.

The quality factor must be in the range 0 to 100 or -1. Specify 0 to obtain small compressed files, 100 for large uncompressed files, and -1 (the default) to use the default settings.

Returns true if the image was successfully saved; otherwise returns false.


Название: Re: Замена символов имени файла
Отправлено: andrew.k от Июнь 01, 2012, 23:53
лучше не морочай себе голову и сохраняй как тебе удобно.
А в отдельный файл пиши соответствие имен файлов и имени сайта.
somesite.com=93280234.png
some-site.com=92402374.png

А твой подход это костыли какие-то.


Название: Re: Замена символов имени файла
Отправлено: ruzik от Июнь 02, 2012, 10:19
Оказывается я все-таки был не прав и точкa в Windows может быть частью имени файла кроме обозначения его расширения, а в Windows и Linux так же?


Название: Re: Замена символов имени файла
Отправлено: Igors от Июнь 02, 2012, 10:31
Оказывается я все-таки был не прав и точкa в Windows может быть частью имени файла кроме обозначения его расширения, а в Windows и Linux так же?
В OSX может. Расширение часто игнорируется если тип файла не ноль. Лучше не связываться с изучением деталей различных файловых систем, а хранить имя сайта в хеше, как уже сказали выше. Обойдется дешевле


Название: Re: Замена символов имени файла
Отправлено: mutineer от Июнь 02, 2012, 11:26
Оказывается я все-таки был не прав и точкa в Windows может быть частью имени файла кроме обозначения его расширения, а в Windows и Linux так же?

В линуксе сколько угодно точек может быть в имени файла, а может и не быть вообще. Никаких проблем это не вызовет (разве что точка в начале имени файла трактуется как маркер "скрытый файл")


Название: Re: Замена символов имени файла
Отправлено: GreatSnake от Июнь 02, 2012, 13:05
В линуксе сколько угодно точек может быть в имени файла, а может и не быть вообще. Никаких проблем это не вызовет (разве что точка в начале имент файла трактуется как маркер "скрытый файл")
Мало того в имени файла могут быть вообще любые символы - в unix-e никаких ограничений нет.


Название: Re: Замена символов имени файла
Отправлено: LisandreL от Июнь 02, 2012, 13:52
Мало того в имени файла могут быть вообще любые символы - в unix-e никаких ограничений нет.
Даже разделитель каталогов?


Название: Re: Замена символов имени файла
Отправлено: GreatSnake от Июнь 02, 2012, 14:44
Даже разделитель каталогов?
Поправочка: за исключением '/' и '\0'.


Название: Re: Замена символов имени файла
Отправлено: kambala от Июнь 02, 2012, 17:22
слэш в мак ос вроде может быть в имени файла (наверняка смогу сказать попозже)


Название: Re: Замена символов имени файла
Отправлено: Igors от Июнь 02, 2012, 17:30
слэш в мак ос вроде может быть в имени файла (наверняка смогу сказать попозже)
Может для файловой системы, но потом возникают трудности с парсингом полного имени. А вот двоеточие нельзя, оно раньше было разделителем пути (до того как поперся posix)


Название: Re: Замена символов имени файла
Отправлено: ruzik от Июнь 02, 2012, 21:49
Понятно, спасибо за помощь!