Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.86.216] |
|
Сообщ.
#1
,
|
|
|
Есть ли на Palm стандартные имена для дисков, которые бы позволяли сказать, что это съемная SD-карта, а вот это внутренняя карточка (вроде как на T5 такая есть)? Т.е. чтобы пользователь мог написать что-то вроде SDCard:/text.txt и был уверен, что он обращается к файлу на SD-карте, а не где-то еще.
И еще не понятно, как связать такое имя с номером тома, который требуется указывать в функциях VFS Manager-а при работе с файлами. |
Сообщ.
#2
,
|
|
|
Нет никаких стандартных имен. Единственный идентификатор собственно ПАМЯТИ (RAM) CardNo=0. Остальные значения могут обозначать все, что угодно, MS, CF, SD, эмулятор (RAM-диск) или еще что.
|
Сообщ.
#3
,
|
|
|
Попробую объяснить, что я хочу, может, удастся найти приемлемое решение.
Нужно получить доступ к файлу, указав его имя и полный путь к нему. В текстовом виде, не выбирая через графический интерфейс. Естественно, должно быть однозначное соответствие с полным именем и расположением на нужном диске. Разные программы на Palm обзывают карточку по-разному. На моем TE я обнаружил варианты: Card: -Card-: (Secure Digital) A: 0: slot1:. Но у меня карточка одна, никаких RAM-дисков и встроенных томов нет. Поэтому любой вариант означает SD-карту. Если стандартных имен нет, то можно именовать по-своему. Например, A: B: C: и т.д. Когда карта одна, то понятно, что A: это именно она. А если томов несколько? Как указать именно тот, который нужен? Перебирать методом тыка? Посмотреть в системе название нужного диска нельзя, т.к. каждая программа именует их, как заблагорассудится. Что посоветуете? |
Сообщ.
#4
,
|
|
|
Цитата andrufka @ Если стандартных имен нет, то можно именовать по-своему. Например, A: B: C: и т.д. Когда карта одна, то понятно, что A: это именно она. А если томов несколько? Как указать именно тот, который нужен? Что посоветуете? CardNo+0x41 Тогда RAM будет А, первый слот (флэшка) - В, второй - С и так далее. Смысла никакого, потому как на разных машинках нумерация слотов может не совпадать. Но CardNo=0 всегда RAM. А если слот для флэшки один, его CardNo всегда 1. Но на NVFS машинках могут быть нюансы. |
Сообщ.
#5
,
|
|
|
Если верить тому, что сказано в Reference (номер тома может меняться каждый раз при монтировании тома), то такой метод не подойдет. Если номер тома может измениться, то при одном запуске B:/text.txt будет файлом на SD-карте, а при следующем запуске (например, после Soft-reset) - на каком-нибудь другом диске.
|
Сообщ.
#6
,
|
|
|
Ну, считайте его номером итерации цикла VFSVolumeEnumerate.
|
Сообщ.
#7
,
|
|
|
в общем виде задача не решается. ибо поочередное вытаскивание-вставление карточек может запросто изменить их порядок.
можно нумеровать карточки в зависимости от типа слота: SD#1, SD#2, CF#1, RAM#1...При показе #1 можно опускать. Номер дается итерацией карты этого типа в VFSVolumeEnumerate. Для устройств с одинаковыми слотами типа зодиака их порядок SD-карт по-моему жестко определен. А у остальных производителей вроде не было однотипных слотов. |
Сообщ.
#8
,
|
|
|
Цитата igor_n @ можно нумеровать карточки в зависимости от типа слота: SD#1, SD#2, CF#1, RAM#1... Попробую такой вариант. Пробежать по VFSVolumeEnumerate(), смотря mediaType в VFSVolumeInfo(). Думаю, что 'sdig' (Secure Digital) и 'mmcd' (MultiMedia Card) можно объединить как SD. Для карт SDHC есть свое значение mediaType? Непонятно, как разрулить случай с одинаковыми слотами. Если в первом слоте нет карточки, то SD#1 укажет на слот #2. |
Сообщ.
#9
,
|
|
|
Цитата andrufka @ Есть ли на Palm стандартные имена для дисков Нет, а нафик они там нужны... Цитата andrufka @ Т.е. чтобы пользователь мог написать что-то вроде SDCard:/text.txt и был уверен, что он обращается к файлу на SD-карте, а не где-то еще. если пользователь ручками что-то пишет без использования GUI, то обычно это пользователь в теме, ну напиши в хэлпе, что типа Card#1:/xxxx.ext это типа файло на карточке в первом слоте, а Card#2:/xxxx.ext файло на карточке во втором слоте и т.п., а если пользователь не знает в каком слоте что у него торчит, то зачем его напрягать ручным вводом... Цитата andrufka @ И еще не понятно, как связать такое имя с номером тома, который требуется указывать в функциях VFS Manager-а при работе с файлами. да всё понятно, при перечислении VFSVolumeEnumerate первая карточка - Card#1, и т.п., а если речь идёт об уникальном соответствии, то такого нет и на писюках - USB флэшки для примера - воткнул одну - буква такая-то, вытащил, воткнул другую - та же буква, можно, конечно, нашаманить каждой флэшке свою букву, но если флэшек больше, чем букв, то ничего не сделаешь... Цитата andrufka Естественно, должно быть однозначное соответствие с полным именем и расположением на нужном диске. ...в таком случае, пользователь должен знать, что при перетыкании карточек, Card#1 пожет смениться на Card#2 и наоборот. можно было бы использовать volume label, но опять же, нет уникальности. короче, не парь юзера ручным вводом :-) Сообщения были разделены в тему "Флуд" |
Сообщ.
#10
,
|
|
|
|
Сообщ.
#11
,
|
|
|
|
Сообщ.
#12
,
|
|
|
|