Надежно выбрасывать флэшки

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Надежно выбрасывать флэшки

Сообщение McLion » 16.06.2016 18:03:23

Всем привет,

не подскажите как надёжно выбрасывать флэшки? Ни знаю как это правильно на русском, у меня не русс. виндовс, негде подглядеть. Короче программой на паскале правильно выкинуть флэшку, что бы не потерять данные?
Или как отключить lazaruzom записи в кэш для всех USB накопителей?

Пасиб!
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Надежно выбрасывать флэшки

Сообщение pupsik » 16.06.2016 18:43:03

Делаете пращу... И выбрасываете. :D
А вот если mount/unmoutn флешку то: http://forum.lazarus.freepascal.org/index.php?topic=12626.0
Ну и: http://stackoverflow.com/questions/434688/how-can-i-remove-a-usb-flash-disk-programmatically-using-delphi.

Или посмотрите как в DC сделано.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Надежно выбрасывать флэшки

Сообщение McLion » 16.06.2016 19:04:55

pupsik писал(а):Делаете пращу... И выбрасываете. :D
А вот если mount/unmoutn флешку то: http://forum.lazarus.freepascal.org/index.php?topic=12626.0
Ну и: http://stackoverflow.com/questions/434688/how-can-i-remove-a-usb-flash-disk-programmatically-using-delphi.

Или посмотрите как в DC сделано.


Что такое праща и DC?
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Надежно выбрасывать флэшки

Сообщение WAYFARER » 16.06.2016 19:13:24

McLion писал(а):Что такое праща

https://ru.wikipedia.org/wiki/%D0%9F%D1 ... 1%89%D0%B0
McLion писал(а):Что такое DC?

Кроссплатформенный файловый менеджер на fp/lazarus
http://doublecmd.sourceforge.net/
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Надежно выбрасывать флэшки

Сообщение Лекс Айрин » 16.06.2016 19:13:54

McLion писал(а):Что такое праща и DC?


Праща это полоска ткани(кожи), для бросания камней.

DC это Double Commander
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Надежно выбрасывать флэшки

Сообщение pupsik » 16.06.2016 19:20:56

Double Commander - там многое что есть для работы с файлами и девайсами. Плюс кросс.
Если чисто для винды то через Win API...

п.с.
"праща".... эх... ну съязвил малость.
Зато бросать удобнее и дальше нежели руками :D
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Надежно выбрасывать флэшки

Сообщение Лекс Айрин » 16.06.2016 19:23:35

pupsikнеудобно, вес маленький.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Надежно выбрасывать флэшки

Сообщение pupsik » 16.06.2016 19:26:08

Лекс Айрин удобно ... Можно утяжелить :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Надежно выбрасывать флэшки

Сообщение Лекс Айрин » 16.06.2016 19:32:28

а можно не страдать.

Как я понял, кроссплатформенного метода нет и для каждой системы надо извращаться по своему?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Надежно выбрасывать флэшки

Сообщение AlphaBlend » 16.06.2016 19:58:11

для управления USB-устройствами у Lazarus есть libusb
https://github.com/hansiglaser/pas-libusb
Аватара пользователя
AlphaBlend
постоялец
 
Сообщения: 207
Зарегистрирован: 22.05.2016 10:13:10

Re: Надежно выбрасывать флэшки

Сообщение Лекс Айрин » 16.06.2016 20:13:13

AlphaBlend, судя по всему, это NIX only компонент. Или не так?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Надежно выбрасывать флэшки

Сообщение McLion » 16.06.2016 20:42:38

Короче дело вот в чем. Я копирую этим кодом файлы на флэшку.

Код: Выделить всё
            begin
              S := TFileStreamUTF8.Create(src, fmOpenRead);
              try
                Application.ProcessMessages;
                T := TFileStreamUTF8.Create(dest, fmOpenWrite or fmCreate);
                T.CopyFrom(S, S.Size);

                Application.ProcessMessages;
                FileSetDate(T.Handle, FileGetDate(S.Handle));
              except
                on E: Exception do
                begin
                  MainForm.EventLog1.Error(E.ClassName + ' ' + E.Message);
                end;
              end;
           end;



Тут я не совсем понимаю, копируется напрямую на флэшку, или через кэш? Если с кэшом, тогда как его опустошить, что бы быть уверенным, что данные на флэшке?
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Надежно выбрасывать флэшки

Сообщение AlphaBlend » 16.06.2016 21:19:47

Лекс Айрин в документации что-то про windows говорится , но вскользь. Сама не знаю :shock:

Добавлено спустя 1 минуту 37 секунд:
McLion а вы программу пишете под Linux и на флешку копируются только текстовые данные ?
Аватара пользователя
AlphaBlend
постоялец
 
Сообщения: 207
Зарегистрирован: 22.05.2016 10:13:10

Re: Надежно выбрасывать флэшки

Сообщение McLion » 16.06.2016 21:24:06

AlphaBlend писал(а):McLion а вы программу пишете под Linux и на флешку копируются только текстовые данные ?


Не, все Windows. Копирую все что угодно, но в основном музыка, видео и фото.
Аватара пользователя
McLion
постоялец
 
Сообщения: 332
Зарегистрирован: 06.02.2015 18:41:00

Re: Надежно выбрасывать флэшки

Сообщение AlphaBlend » 16.06.2016 21:25:46

McLion я плохо ориентируюсь в windows , но мучает вопрос - а обычным файловым потоком нельзя ?

Добавлено спустя 2 минуты 24 секунды:
хотя вы и используете поток ... и не работает ?
Аватара пользователя
AlphaBlend
постоялец
 
Сообщения: 207
Зарегистрирован: 22.05.2016 10:13:10

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 239

Рейтинг@Mail.ru