| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Получение последнего измененного файла |
| Автор: 1Age 13.1.2015, 16:07 | ||||||||||
| Здравствуйте , уважаемые форумчанины . Я новичок в Delphi , и при написании программы у меня возникло пару проблем , которые я не смог решить. 1. Не могу сохранить файл при загрузке на диск C:\
Но при сохранение у меня выдает ошибку...
Как давать разрешение на сохранение? Если запускать от имени администратора , то тогда все нормально сохраняет . Но хотел бы без этого как бы . Так же , я бы хотел сразу сохранять в папку TEMP.
Как определять путь до папки TEMP ? Не до Windows TEMP , а вот именно до пользовского TEMP'a. 2. У меня вообще была программы на AutoHotKey , легкий язык я бы сказал , даже очень. Но там уже почти все изучил , и вот решил перейти на Delphi . И там у меня была такая вот функция , которая узнает в папке последний измененный файл. И записывает в переменную и потом устанавливает это параметры для этой папки.
Вот этот код у меня на AutoHotKey написан , перевести его на Delphi у меня совсем не получается :(( 3. И третья проблемка , совсем легкая , но на просторах интернета там и не нашел нужного . У меня лицензия вообщем . Через IDhhtp берется в переменную текстовик, а в другую переменную берется еще одно значение . И как мне сравнить эти две переменные ?
Пробовал вот таким вот методом , но он сравнивает со всем файлом . А как сравнить именно строку? Проверить, содержит ли переменная указанную строку. Надеюсь внятно объяснил)) Заранее большое спасибо!! |
| Автор: Illusion Dolphin 13.1.2015, 21:30 | ||||||||||||
А не надо всякое безобразие в корень писать, для этого другие папки есть
Я ничего не понял. |
| Автор: 1Age 13.1.2015, 23:19 | ||||||
Вообщем , пока 3 проблемку опустим, я там пока что смотрю всякие видео про строки , может увижу то что мне надо .
Безобразие кидать не собираюсь) У меня файлик обновления качался раньше туда . Почему диск С? Так как у некоторых пользователей вообще один диск ) И это диск C , по этому и хочу туда сохранять , во избежании потом проблем с обновой.
Отлично работает , только вот опять проблемка ) Не могу установить на папку эту дату , на файл все хорошо устанавливается , а вот только на папку не получается что - то :( Нашел вот такую вот функцию , но больно она уж большая , может есть вариант поменьше ?
|
| Автор: kami 13.1.2015, 23:57 | ||
- пару компьютеров, у которых диском C был DVD, а система стояла на D. - несколько, где диск C был скрытым (фактически - его не было), а первым (и системным) диском был D. 3. Если я правильно понял, то нужно что-то типа
|
| Автор: 1Age 14.1.2015, 00:57 |
| @Kami , спасибо большое! В точку прям)) @Alexeis , Точно UAC . Забыл уже совсем как это называется ) Уже просто по дефолту хочу оставить TEMP , так как когда будет у человека появляться файлик апдейта на рабочем столе , уже как то не очень . Ну это лично мое мнение . Я так понимаю надо хук использовать? (Я мало что знаю о хуках , так что если это не то , не кричите особо :P) |
| Автор: Illusion Dolphin 14.1.2015, 08:12 | ||||||||||
Диска С вообще может не быть.
Так работает KMPlayer, но я бы в темп кидал
Для чего? |
| Автор: Poseidon 14.1.2015, 09:27 | ||
Записывать на прямую в C: не дает сама Windows. UAC тут не при чем. Записывать что-то временное надо в TEMP. Что-то постоянное - в Application Data\... |
| Автор: 1Age 14.1.2015, 10:10 | ||
| Остался последний вопросик , как мне получить букву вставленной флешки ? Пример : "F:\" В виде чего то типо этого .
И нормально ли вообще закрывать свое приложение ? "Aplplication.Terminate" ? |
| Автор: Illusion Dolphin 14.1.2015, 12:05 | ||||
А если вставлено 3 флешки?
Имхо вполне. |
| Автор: 1Age 14.1.2015, 12:09 | ||||||
Ну так скажем , не надо 3 флешки сразу вставлять Да и это уже запарка какая то получается) |
| Автор: Poseidon 14.1.2015, 13:26 | ||
|
| Автор: Illusion Dolphin 14.1.2015, 21:50 | ||||||||
Чтобы проверить "флешки":
Флешка:
Диск подключен по USB (переносной):
Ещё есть Portable Devices, которые тоже вроде как флешки, но это отдельная тема |
| Автор: 1Age 15.1.2015, 09:21 | ||
Мне вот такой вариант подойдет , он определяет . Только вот , он выдает результат в виде числа , перевод в строку не чего не дает(( Как можно исправить? Что бы он в ShowMessage выдавал букву . |
| Автор: ТоляМБА 15.1.2015, 09:45 | ||
|
| Автор: 1Age 15.1.2015, 10:07 | ||||
Thanks |
| Автор: 1Age 28.1.2015, 20:31 | ||
| Подниму темочку , дабы не создавать лишнюю . И так , устанавливаю функцией ниже , время для файлов,папок . Вообщем часто использую . Но заметил очень странный баг , а может и не баг . Суть - Пару раз в коде устанавливается время папки . Но если сидеть в самой папке , на которую хочу установить время , то время тупо не устанавливается . Если папка не открыта , то все нормально работает. Можно ли это как то фиксануть?
|
| Автор: Illusion Dolphin 28.1.2015, 21:56 |
| https://msdn.microsoft.com/en-us/library/windows/desktop/ms679360%28v=vs.85%29.aspx |
| Автор: 1Age 28.1.2015, 22:10 | ||||
Ошибку я в принципе знал , но не уверен был . Теперь убедился .
Походу из - за того что получает хендл папки. Исправить я так понимаю нельзя? |
| Автор: Illusion Dolphin 28.1.2015, 23:27 | ||
А попробуйте другие опции доступа. Я правильно понимаю, что ошибка в CreateFile? Что если добавить что-нибудь вроде FILE_SHARE_WRITE/FILE_SHARE_READ ? |
| Автор: 1Age 29.1.2015, 16:52 | ||||||
Я так понимаю , что вы написали выше, надо подставить за место этого? |
| Автор: Illusion Dolphin 29.1.2015, 20:28 |
| Это надо добавить к GENERIC_READ or GENERIC_WRITE через OR |
| Автор: 1Age 29.1.2015, 21:23 | ||
Не помогло ( Можете еще что нибудь подсказать? Ошибка такая же . |
| Автор: Illusion Dolphin 1.2.2015, 13:12 | ||
Без финального кода и примера папок сложно сказать. |