FileStream в Unicode?

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

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

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

FileStream в Unicode?

Сообщение McLion »

Всем привет,

хочу копировать файлы таким способом. Но не хочет копировать файлы с кириллицей, что делать? Windows и Lazarus у меня не на русском языке.

Код: Выделить всё

src := SysToUTF8(ListView1.Items[i].SubItems.Strings[2]);
не помогает.

Код: Выделить всё

procedure TMainForm.CopyBitBtnClick(Sender: TObject);
var
  i: Word;
  src, dest: String;
  S: TFileStream = nil;
  T: TFileStream = nil;
begin
  if ListView1.Items.Count > 0 then
  begin
    for i := 0 to ListView1.Items.Count - 1 do
    begin
      if ListView1.Items[i].Checked then
      begin
        try

          src := ListView1.Items[i].SubItems.Strings[2];
          dest := StringReplace(src, src[1], AnsiUpperCase(DriveLetterNeto[1]), [rfIgnoreCase]);

          S := TFileStream.Create(src, fmOpenRead);
          try
            T := TFileStream.Create(dest, fmOpenWrite or fmCreate);
            T.CopyFrom(S, S.Size);
            FileSetDate(T.Handle, FileGetDate(S.Handle));
          except
            on E: Exception do MessageDlg(E.ClassName + sLineBreak + E.Message, mtError, [mbOk], 0);
          end;

        finally
          if T <> nil then T.Free;
          S.Free;
        end;
      end;
    end;
  end;
end;
скалогрыз
долгожитель
Сообщения: 1804
Зарегистрирован: 03.09.2008 02:36:48

Сообщение скалогрыз »

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

Сообщение McLion »

Класс! Пасиб!
Alex2013
долгожитель
Сообщения: 3236
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

А чем плохо бинарное копирование ? :roll: (Например через нетипизированный файл )
Или там были проблемы с именем ?
Аватара пользователя
McLion
постоялец
Сообщения: 332
Зарегистрирован: 06.02.2015 17:41:00

Сообщение McLion »

Хорошие книжки советуют FileStream. Да и гнало что то бинарное копирование. С маленькими файлами было вроде все ок, а гигавые файлы не хотел копировать.
Ответить