Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2018, 10:44   #1
Фазан
Пользователь
 
Регистрация: 31.10.2017
Сообщений: 11
Вопрос Как узнать дескриптор по полному имени файла? С++

Всем доброго времени суток.

Полный путь был получен через функцию GetOpenFileNameW:
Код:

                                               WCHAR fn[1024];
					       fn[0]='\0';
                                               OPENFILENAMEW ofn;
                                               ofn.lStructSize = sizeof(OPENFILENAMEW);
                                               ofn.hwndOwner = hwnd;
                                               ofn.lpstrFilter = L"\0*.*\0\0";
                                               ofn.lpstrCustomFilter = NULL;
                                               ofn.nFilterIndex = 1;
                                               ofn.lpstrFile = fn;
                                               ofn.nMaxFile = 1024;
                                               ofn.lpstrFileTitle = NULL;
                                               ofn.lpstrInitialDir = NULL;
                                               ofn.lpstrTitle = NULL;
                                               ofn.Flags = OFN_EXPLORER;
                                               ofn.lpstrDefExt = NULL;
                                               ofn.FlagsEx = 0;
                                               
                                              
                                                if (GetOpenFileNameW(&ofn))
                                                {
                                                 //здесь неудачная попытка получения
                                                  //дескриптора 
                                                }
Хотел получить дескриптор через CreateFile, но чтобы узнать неизвестные мне данные для CreateFile, нужен дескриптор. Который мне как-раз и нужен

Пожалуйста помогите, уже 3 дня не могу додуматься.

Последний раз редактировалось Фазан; 31.03.2018 в 11:25.
Фазан вне форума Ответить с цитированием
Старый 31.03.2018, 11:09   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Так откройте файл. Диалог выбора файла ничего сам не открывает.

Цитата:
Хотел получить дескриптор через CreateWindow
А она тут причем? Даже название создать окно намекает, что это не про файлы.

Цитата:
но чтобы узнать неизвестные мне данные для CreateWindow, нужен дескриптор
Вы что-то путаете.

Цитата:
Который мне как-раз и нужен
Нет
p51x вне форума Ответить с цитированием
Старый 31.03.2018, 11:23   #3
Фазан
Пользователь
 
Регистрация: 31.10.2017
Сообщений: 11
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Так откройте файл. Диалог выбора файла ничего сам не открывает.
Мне нужно именно через диалог, чтобы пользователь мог через него выбрать файл.
А в выбранный файл нужно записать то что находится в одно строчном редакторе(который нормально работает).
Фазан вне форума Ответить с цитированием
Старый 31.03.2018, 11:59   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут пользователь? Диалог дает вам путь файла.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 31.03.2018, 12:03   #5
Фазан
Пользователь
 
Регистрация: 31.10.2017
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Диалог дает вам путь файла.
Я знаю. Даёт путь, но не даёт дескриптор. Чтобы записать нужен дескриптор.
Через путь я не знаю как. Именно поэтому я спрашивал как получить дескриптор зная полный путь файла.
Фазан вне форума Ответить с цитированием
Старый 31.03.2018, 12:06   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык CreateFile же и есть для этого.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 31.03.2018, 12:11   #7
Фазан
Пользователь
 
Регистрация: 31.10.2017
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Дык CreateFile же и есть для этого.
Если я тупо задам один путь, а все другое ноль, то оно не работает.Проверял.
А чтоб узнать всё другое(права доступа,записи и т.п.) нужен дескриптор
Фазан вне форума Ответить с цитированием
Старый 31.03.2018, 12:19   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так читайте что какой параметр значит.
Для чего именно нужен?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 31.03.2018, 12:22   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Фазан Посмотреть сообщение
Я знаю. Даёт путь, но не даёт дескриптор. Чтобы записать нужен дескриптор.
ТАК ОТКРОЙТЕ ФАЙЛ. ПОКА ФАЙЛ НЕ ОТКРЫТ НИКАКОГО ДЕСКРИПТОРА НЕТ. Это просто набор байтов на диске.

Цитата:
А чтоб узнать всё другое(права доступа,записи и т.п.) нужен дескриптор
НЕТ. Читайте описание. Это вы указываете как хотите открыть файл, а система решит - можно или нет.
p51x вне форума Ответить с цитированием
Старый 31.03.2018, 12:40   #10
Фазан
Пользователь
 
Регистрация: 31.10.2017
Сообщений: 11
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
НЕТ. Читайте описание. Это вы указываете как хотите открыть файл, а система решит - можно или нет.
Спасибо, теперь дошло. Я этого просто не знал про CreateFile.
Фазан вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, плз, как экранировать(?) прямой слеш(/) в имени файла, чтобы java не воспринимала его как символы перед ним как другую директория? Сергей_ТВ Общие вопросы по Java, Java SE, Kotlin 3 24.10.2016 15:15
Полному новичку C++ Базовые понятия-класс. Как он сотносится с обьектом?Как скомпилить пример из сайта? Dimka-novitsek Общие вопросы C/C++ 15 26.08.2013 14:50
Узнать дескриптор экранного буфера Kix.IV Win Api 12 01.04.2013 19:16
Как узнать запущена ли программа(не по имени файла а по пути) Crystallon Общие вопросы Delphi 10 03.08.2011 13:39
Узнать дескриптор процесса, блокирующего USB Denager Общие вопросы Delphi 3 01.07.2010 16:09