Скажите, почему, если в строку адреса ввести адрес папки без символа , диалог открывает его как файл(т.е. выводит имя папки в поток)
code_10306.txt
------------ Дoбавленo:
Балин кривые мои руки - тема типа называется OpenDialog
Этот топик читают: Гость
Ответов: 1161
Рейтинг: 160
|
|||
карма: 0 |
| ||
файлы: 1 | code_10306.txt [394B] [137] |
Ответов: 110
Рейтинг: 9
|
|||
Логически все правильно - слэш в конце однозначно указывает на то что это папка.
Видимо алгоритм так работает - все что за последним слэшем - имя файла. |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
LainX, попробуй ход конём
|
|||
карма: 4 |
|
Ответов: 1161
Рейтинг: 160
|
|||
Ну EvgIg логика конечно правильно, но есть одно НО... Даже при попытке ткнуть в среде Hiasm папку без слеша на конце(тот же Crogram Files), то он откроет папку, а не откроет ее как проект.
andrestudio, это не решение - если я выберу другую папку, то это уже не поможет С таким ходом коня и недалеко до мата Ну набросал схемку по этому поводу(ну еще примочка в ней есть на существование файла) code_10307.txt ------------ Дoбавленo: Но такой метод муторный, и надоест быстро(не хочется вставлять мультики туда и сюда) |
|||
карма: 0 |
| ||
файлы: 1 | code_10307.txt [1KB] [144] |
Ответов: 5227
Рейтинг: 587
|
|||
LainX, и что мешает выбрать другю папку
Add(StrCat,16428973,217,308) { Str2=";имя файла" } |
|||
карма: 4 |
|
Ответов: 1161
Рейтинг: 160
|
|||
Add(StrCat,16428973,217,308)
{ Str2=";имя файла" } че там ; делает? |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
а что рыба нужна
|
|||
карма: 4 |
|
Ответов: 1161
Рейтинг: 160
|
|||
andrestudio писал(а): а что рыба нужна селедка Ну а правда, почему другие приложения открывают папки, а приложения в Hiasm выводят папку как "файл"? |
|||
карма: 0 |
|
Ответов: 5227
Рейтинг: 587
|
|||
LainX, выкладывай что хочешь и что должно получится, вот и порешаем твой ребус.
|
|||
карма: 4 |
|
Ответов: 110
Рейтинг: 9
|
|||
LainX писал(а): Даже при попытке ткнуть в среде Hiasm папку без слеша на конце(тот же C:\Program Files), то он откроет папку, а не откроет ее как проект.Действительно, разница есть. ------------ Дoбавленo: Лучше делать так:
Это два разных диалога - в HiAsm'e диалог открытия файла, а здесь файла или каталога. Посему и поведение разное. ------------ Дoбавленo: Выбери в среде ODialog, нажми Ctrl+F в открывшемся окне найди первую строчку OSNoValidate, поменяй ее на OSPathMustExist и сохрани- будет то что надо (надеюсь знатоки поправят, ежли я не прав) |
|||
карма: 0 |
| ||
Голосовали: | LainX |
Ответов: 1161
Рейтинг: 160
|
|||
EvgIg писал(а): Выбери в среде ODialog, нажми Ctrl+F в открывшемся окне найди первую строчку OSNoValidate, поменяй ее на OSPathMustExist и сохрани- будет то что надо Спасибо большое - теперь работает! |
|||
карма: 0 |
|
Ответов: 110
Рейтинг: 9
|
|||
LainX,
Всетаки надо попросить знатоков, чтобы добавили OSPathMustExist в компанент. А то у тебя он будет "подпатченный" |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
Специально проверил, что вы тут натворили. Муть получилась изрядная.
Внимательно читаем описание флагов OFN_PATHMUSTEXIST - определяет, что пользователь может указать только существующий путь и имена файлов
Что означает, если такого пути или файла нет, то диалог не создасться вообще. Смотрим ситуацию с таким вариантом (флаг OSPathMustExist установлен) Crogram Files -- диалог не создается вообще Crogram Files -- диалог создается и Program Files пропихивается в диалог как имя файла (на кой черт он там нужен ???) Подход должен быть совсем другой -- диалог должен создаваться всегда (флаг OSNoValidate вернуть на место), а вот FOpenDialog.Filename должен быть равен пусто, если это папка и на выход и в диалог не попадать |
|||
карма: 22 |
|
Ответов: 1161
Рейтинг: 160
|
|||
nesco писал(а): Crogram Files -- диалог не создается вообщеНу у меня создается и nesco писал(а): Program Files пропихивается в поток как файлНо вообще то это мне и нужно... |
|||
карма: 0 |
|
Разработчик
Ответов: 26170
Рейтинг: 2127
|
|||
LainXz , я немного ошибся, наоборот надо слэши в описании работы. Исправил пост.
Но мне не нравится, что по Crogram Files диалог не создается, а ведь должен, это папка, а не файл И объясни, зачем в поток конечную папку пропихивать? Туда должны файлы попадать, а не папки. См. описание точки
|
|||
карма: 22 |
|