Здравствуйте.
Пытался реализовать открытие файла, но столкнулся с тем, что если в пути есть кириллический символ, то функции DirectoryExists, FileExists возвращают FALSE. Попытки создания TFileStream.Create('C:\русские символы\file', faReadOnly) вызывают ошибку Unable to open file ...
Минимальный проект, воспроизводящий ошибку прилагаю.
Операционная система - Windows XP SP3
Lazarus 1.2.6
FPC 2.6.4
заранее спасибо
Открытие файлов с кирилическими символами в пути
Модератор: Модераторы
- SourceOfDeath
- незнакомец
- Сообщения: 3
- Зарегистрирован: 08.08.2015 06:45:43
Открытие файлов с кирилическими символами в пути
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
DirectoryExistsUTF8, FileExistsUTF8 из FileUtil
- SourceOfDeath
- незнакомец
- Сообщения: 3
- Зарегистрирован: 08.08.2015 06:45:43
Да это, похоже, помогло. Большое спасибо. Что делать с потоком? Почему он файла не находит? Мало проверить существует файл, или нет, его ещё нужно открыть (меня больше устроит поток). Вот я ещё FileOpen не пробовал, может, и он не работает.
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
TFileStreamUTF8 из lazutf8classes
- SourceOfDeath
- незнакомец
- Сообщения: 3
- Зарегистрирован: 08.08.2015 06:45:43
Вот как надо!
TFileStream.Create(UTF8ToSys('C:\русские символы\file'), faReadOnly)
TFileStreamUTF8 - Спасибо, щас будем разбираться
TFileStream.Create(UTF8ToSys('C:\русские символы\file'), faReadOnly)
TFileStreamUTF8 - Спасибо, щас будем разбираться
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
UTF8ToSys(...) - да, для стандартных версий. Но я стараюсь использовать всюду UTF8-версии, как более универсальное средство.
