OberonCore https://forum.oberoncore.ru/ |
|
Проблема с открытием файлов под WINE https://forum.oberoncore.ru/viewtopic.php?f=34&t=2975 |
Страница 1 из 1 |
Автор: | Пётр Кушнир [ Воскресенье, 07 Ноябрь, 2010 00:13 ] |
Заголовок сообщения: | Проблема с открытием файлов под WINE |
Обнаружил проблему в работе ББ под вайном. ББ 1.6 rc 6, Ubuntu 10.10 с последними апдейтами вайна(цыфири уж не стал искать, не до того). Есть длинный список путь+имя файла в текстовом виде. требуется получить хэш суммы этих файлов. Сделал в виндовс примитивную программу, открывает файлы стандартной подсистемой. читает данные, считает хэш. всё ОК. Перехожу в вайн, запускаю, получаю на выходе, для некоторых(произвольных файлов, системы в ошибках я так и не увидел) файлов отсутствует сумма. полез разбираться - увидел, что, те самые файлы не открываются вовсе, в локаторе результат 2, т.е. HostFiles.fileNotFound. и так, каждый раз. причём, каждый раз неоткрытые файлы могут оказаться какие угодно из списка. файлы открываются в расшареном режиме, после чтения хэша принудительно закрываются. Вот такая проблема. |
Автор: | Info21 [ Воскресенье, 07 Ноябрь, 2010 11:21 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Пришло в голову, прошу не бить, вдруг для чего-то пригодится: один без-гуйный ББ сам по себе, другой, гуйный под Вайном, и общаются. И по каким-то запросам гуйного удовлетворяет без-гуйный. |
Автор: | Иван Кузьмицкий [ Воскресенье, 07 Ноябрь, 2010 11:30 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Есть предположение, что проблема проявляется на файлах с длинными именами. HostFiles.Locator на вайне имеет maxLen = 12, а под виндой maxLen = 255. |
Автор: | Info21 [ Воскресенье, 07 Ноябрь, 2010 11:45 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Иван Кузьмицкий писал(а): Есть предположение, что проблема проявляется на файлах с длинными именами. HostFiles.Locator на вайне имеет maxLen = 12, а под виндой maxLen = 255. А откуда разница?Разве под вайном не виндусовая версия запускается? |
Автор: | Иван Кузьмицкий [ Воскресенье, 07 Ноябрь, 2010 12:15 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Виндусовая, конечно. Точно такая, как и на винде запускается. Сам не пойму. Files.dir.Old иногда просто не видит файл (возвращает loc.res = 2, т.е "location or file not found"), хотя и локатор, и имя есть, и в списке Files.dir.FileList данный файл фигурирует. |
Автор: | Info21 [ Воскресенье, 07 Ноябрь, 2010 12:59 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Иван Кузьмицкий писал(а): Виндусовая, конечно. Точно такая, как и на винде запускается. Сам не пойму. Тогда откуда maxLen? Разве это не константа какая-то? |
Автор: | Иван Кузьмицкий [ Воскресенье, 07 Ноябрь, 2010 13:17 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Код: Locator* = POINTER TO RECORD (Files.Locator) path-: FullName; (* without trailing "/" *) maxLen-: INTEGER; (* maximum name length *) caseSens-: BOOLEAN; (* case sensitive file compares *) rootLen-: INTEGER (* for network version *) END; Значение maxLen возникает в HostFiles, из WinApi.GetVolumeInformationW и используется для разделения имени и расширения файла. Насколько я помню, для файловой системы FAT винда как-то урезает длинные имена до формата 8.3. Я и предположил, что в WINE это урезание даёт эффект пропадания файла с длинным именем. |
Автор: | Иван Денисов [ Воскресенье, 07 Ноябрь, 2010 14:10 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Проверил вот такое имя и ничего в BB1.6 файл обработался, а вот в 1.5, конечно, проблемы с русскими буквами в пути. Код: c:/users/divan/проверка/очень длинное назмание папки с пробелами и русскими буквами и буквой ё/Drosophila_melanogaster(дрозофила).BDGP5.25.59.dna_rm.chromosome.3R.fa
|
Автор: | Иван Кузьмицкий [ Воскресенье, 07 Ноябрь, 2010 14:16 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Вроде как выясняется, что проблема в слэшах. Проверяем... |
Автор: | Info21 [ Воскресенье, 07 Ноябрь, 2010 14:44 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
divan писал(а): в 1.5, конечно, проблемы с русскими буквами в пути. Это нужно бы понять. На рецептурном уровне?
Код: c:/users/divan/проверка/очень длинное назмание папки с пробелами и русскими буквами и буквой ё/Drosophila_melanogaster(дрозофила).BDGP5.25.59.dna_rm.chromosome.3R.fa |
Автор: | Пётр Кушнир [ Воскресенье, 07 Ноябрь, 2010 15:29 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Проблема решена. Я, с прицелом на кроссплатформенность во всех строках пути указываю слэш, "/" Винда нормально потребляет такие строки. А вайн поперхнулся. Пришлось воткнуть процедуру-"вайнизатор" которая бы эти пути на самом подходе к работе с Files переделывала, заменяя слеш на бэкслеш. Обошлось малой кровью, стандартная Files уже была обёрнута. Вывод: Обёртки рулят! |
Автор: | Info21 [ Воскресенье, 07 Ноябрь, 2010 15:34 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
стираю |
Автор: | Евгений Темиргалеев [ Воскресенье, 07 Ноябрь, 2010 15:47 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Пётр Кушнир писал(а): Проблема решена. "/" это слэш, бэкслэш это "\".Я, с прицелом на кроссплатформенность во всех строках пути указываю бэкслэш, "/" Винда нормально потребляет такие строки. А вайн поперхнулся. Винда пути с "/", насколько я знаю, потреблять не должна. И вайн с некоторого времени перестал (стартовый скрипт ББ с линуховыми путями работать перестал, оказалось что появилась утилита winepath). я решал проблему работы с полными путями так, как в ББ сделано: PathToLoc/PathToSpec (поиск по исходникам и копирование к себе). |
Автор: | Иван Кузьмицкий [ Воскресенье, 07 Ноябрь, 2010 15:50 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Неочевидны, факт. Поэтому говорят об очевидных вещах, таких как раскраска текстов. |
Автор: | Пётр Кушнир [ Воскресенье, 07 Ноябрь, 2010 15:56 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Евгений Темиргалеев писал(а): "/" это слэш, бэкслэш это "\" FIXED!
|
Автор: | Евгений Темиргалеев [ Воскресенье, 07 Ноябрь, 2010 16:18 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
Евгений Темиргалеев писал(а): Винда пути с "/", насколько я знаю, потреблять не должна. хехе. http://msdn.microsoft.com/en-us/library ... 85%29.aspxЦитата: Note File I/O functions in the Windows API convert "/" to "\" as part of converting the name to an NT-style name, except when using the "\\?\" prefix as detailed in the following sections. Надо полагать, эта хреновина появилась с NT...
|
Автор: | Valery Solovey [ Понедельник, 08 Ноябрь, 2010 15:54 ] |
Заголовок сообщения: | Re: Проблема с открытием файлов под WINE |
То есть, с самого начала : ). |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |