Название: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: CProger от Апрель 06, 2010, 22:00 Возникла проблема с вот таким кодом:
Код
собсно пользователю не запретишь использовать русские буквы в названиях директорий. Может кто находил выход из такой ситуации? Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: pastor от Апрель 06, 2010, 22:13 И какого рода проблема?
Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: CProger от Апрель 06, 2010, 22:15 а проблема в том, что этот код всегда ошибку выдаёт :) в винде, по крайней мере.
Всё остальное копирует отлично, а как русские буквы - так false возвращает.. Пробовал и через QString::fromUtf8() передать русские имена.. но всё равно не прокатывает. Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: Alex Custov от Апрель 07, 2010, 00:10 собсно пользователю не запретишь использовать русские буквы в названиях директорий. Может кто находил выход из такой ситуации? Код
Всё равно лучше дать возможность ользователю выбрать файл через QFileOpenDialog, там уже decodeName() не понадобится. Плюс, от захардкоденых путей с неанглийскими симвоалами могут быть проблемы на других системах и локалях. Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: serg_hd от Апрель 07, 2010, 01:42 Тема заинтересовала...
Хотя у меня почему-то, если использовать QFile::decodeName(), то русский путь к файлу в консоль qDebug() выводит как надо, но копирования всё равно не происходит (а без этого метода и в консоль будет выводиться кадабра). Пробовал setEncodingFunction() и setDecodingFunction() и Код: QTextCodec *tc = QTextCodec::codecForName("utf-8"); Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: crackedmind от Апрель 07, 2010, 05:51 Код: #include <QtCore> Название: Re: QFile::copy - проблема с русскими именами в файлах и д Отправлено: Пантер от Апрель 07, 2010, 06:18 1. Не используйте в коде символы, отличные от латиницы.
2. Зачем хардкодить пути в коде? Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: serg_hd от Апрель 07, 2010, 11:13 crackedmind, ага, теперь копируется. А почему ставить кодек надо именно для CStrings?
Пантер, так ведь никто не спорит. Лично мне это интересно исключительно ради опыта. Мало ли, вдруг пригодится в какой-то косвенной ситуации. Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: crackedmind от Апрель 07, 2010, 13:30 Цитата: Пантер 1. Не используйте в коде символы, отличные от латиницы. Однако, если считывать путь из txt файла проблема будет таже.2. Зачем хардкодить пути в коде? Цитата: serg_hd crackedmind, ага, теперь копируется. А почему ставить кодек надо именно для CStrings? Цитата из Асистента: Цитата: Qt Assistant Sets the codec used by QString to convert to and from const char * and QByteArrays. If the codec is 0 (the default), QString assumes Latin-1. А "c:/путь/файл" уже является char *Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: niXman от Апрель 07, 2010, 18:55 о ужос! :o
это просто мегапроблема! ;D как-то так: Код
или самопал: Код
и естественно, для QFile и подобных, не существует итераторов. и естественно, к QFile и подобным, невозможно применить алгоритмы ;D Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: zenden от Апрель 07, 2010, 19:22 ага, но для QFile и подобных, компилятор не задыхается из-за обилия шаблонов и не компилирует по полчаса
Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: niXman от Апрель 07, 2010, 19:36 самый весомый аргумент ;D
intel 80386 ? ;) Название: Re: QFile::copy - проблема с русскими именами в файлах и директориях.. Отправлено: Пантер от Апрель 08, 2010, 06:19 niXman, тебе не кажется, что вопрос был совсем о другом?
|