FileGetAttr

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

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

Ответить
modjo
новенький
Сообщения: 92
Зарегистрирован: 19.07.2009 15:52:10
Откуда: Москва

FileGetAttr

Сообщение modjo »

Не могу до конца понять почему в одном случае не выставляется чекбокс.. Вот пример кода:

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

procedure TMainWindows.SelectFileChange(Sender: TObject);
begin
  AttrReadOnly.Checked:=False;
  AttrHide.Checked:=False;
  AttrArch.Checked:=False;
  F:=FileGetAttr(SelectFile.FileName);
  if F<>-1 then begin
    if (F and faReadOnly)<>0 then
      AttrReadOnly.Checked:=True;
    if (F and faHidden)<>0 then
      AttrHide.Checked:=True;
    if (F and faArchive)<>0 then
      AttrArch.Checked:=True;
  end;
end;


Есть два файла passwordsguru.exe и БазаПараметров81.xml, допустим. Оба архивные. Но при использовании первого чекбокс ставится как положено, а при втором нет. Не могу понять почему так происходит... Может это от расширения зависеть? (сам в это не верю)

Добавлено спустя 2 часа 38 минут 9 секунд:
Блин, все понятно. Файлы с русскими именами не обрабатываются...
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

modjo писал(а):Файлы с русскими именами не обрабатываются...

приводи кодировку к системной.
modjo
новенький
Сообщения: 92
Зарегистрирован: 19.07.2009 15:52:10
Откуда: Москва

Сообщение modjo »

Не подскажите где это можно настроить. Пробежался по настройкам, но не нашел.
Odyssey
энтузиаст
Сообщения: 580
Зарегистрирован: 29.11.2007 16:32:24

Сообщение Odyssey »

modjo писал(а):

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

  F:=FileGetAttr(SelectFile.FileName);


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

  uses FileUtil;
  ...
  F:=FileGetAttrUTF8(SelectFile.FileName);
  // или то же самое с приведением кодировки:
  // F:=FileGetAttr(UTF8ToSys(SelectFile.FileName));
modjo
новенький
Сообщения: 92
Зарегистрирован: 19.07.2009 15:52:10
Откуда: Москва

Сообщение modjo »

Спасибо, как раз FileGetAttrUTF8 мне уже подсказали. И UTF8ToSys тож надо будет запомнить.

Добавлено спустя 14 часов 32 минуты 19 секунд:
Чтоб не создавать новой темы напишу тут. Не подскажите как получить время создание файла и время открытия файла. То что есть в свойстве файла в виндах. Знаю как получить время изменения. Перерыл документацию, но найти что-то подходяще не получилось. Не подскажите в какую сторону копать, чтоб что-то откопать?
Аватара пользователя
Tango
постоялец
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Сообщение Tango »

Как в Linux узанать и сделать файл исполняемым, shell скрипт, например.
hovadur
постоялец
Сообщения: 116
Зарегистрирован: 31.01.2013 15:50:41

Сообщение hovadur »

Tango писал(а):Как в Linux узанать и сделать файл исполняемым

FileSetAttr?
Аватара пользователя
Tango
постоялец
Сообщения: 162
Зарегистрирован: 31.05.2012 17:07:30

Сообщение Tango »

hovadur писал(а):
Tango писал(а):Как в Linux узанать и сделать файл исполняемым

FileSetAttr?

А потом?

На WinDOS нет атрибута executeble.

Добавлено спустя 20 минут 8 секунд:
А функция эта преобразует атрибуты к виндосовскому формату.
Аватара пользователя
Alexx2000
постоялец
Сообщения: 490
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи
Контактная информация:

Сообщение Alexx2000 »

Ответить