![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
инфа о файле,скан директории,ADO.
KILROY © (2006-02-18 15:46:00)КАНИЧИВА СЕНСЕИ!!!=)
проблемы:
1)Как узнать инфу о файле(имя(без расширения),тип,размер,дату создания,изменения,создатель файла(документа) ?
2)Как сделать выбор директорий в сетевом окружении ?
3)Как добавить это инфу о файлах в БД?
kilroystudio.narod.ru/ado.rar если не затруднит скачайте и посоветуйте что и как лучше сделать.
Desdechado (2006-02-18 17:40:00) [21]> я убираю dir
искать будет в текущей директории, этоне обязательно директория с программой
> сканит в С:\
нет слэша между C:\ado и *.txt, сделай
Dir:=IncludeTrailingBackSlash(Dir);
KILROY (2006-02-18 17:27:00) [22]И еще как сделать что бы он сканил не токо файлы с одним расширением.
уже все перепробовал, ваще не сканит.
Болит моя башка +_+
KILROY (2006-02-18 17:24:00) [23]
begin
stringGrid1.RowCount := 0;
FileAttrs := FileAttrs + faAnyFile;
with stringGrid1 do
begin
RowCount := 0;
dir:= Label1.Caption;
if FindFirst( dir+'*.txt', FileAttrs, sr) = 0 then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[0,RowCount-1] := sr.name;
Cells[1,RowCount-1] := IntToStr(sr.size);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
Вот когда я убираю dir из этой сторчкиif FindFirst( dir+'*.txt', FileAttrs, sr) = 0 thenтогда сканит в директории с прогой,а когда стоит то сканит в С:\ .Я уже всю голову сломал.
KILROY (2006-02-18 17:14:00) [24]КРУТО!!!Такой краткости я еще не видел=)))
1.begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
RowCount := RowCount + 1;
Cells[0,RowCount-1] := sr.name; //имя
Cells[1,RowCount-1] := IntToStr(sr.size); //размер
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
А остальные атрибуты как написать... тип,дата создания,создатель(владелец) документа...???
2.uses ShellAPI, ShlObj;
procedure TForm1.Button1Click(Sender: TObject);
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := Form1.Handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := 'Please specify a directory';
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
ShowMessage(TempPath);
GlobalFreePtr(lpItemID);
end;
end;
Хмм..с этим тоже справился...токо раньше у меня в кнопочке был вот этот код
procedure TForm1.Button3Click(Sender: TObject);
begin
begin
Dir := 'C:\ado';
if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
Label1.Caption := Dir;
Теперь при нажатии на кнопочку поиск(файлов) то прога ищет токо те которыйе либо в каталоге с прогой либо на С:\ .Вот никак непойму как сделать так чтобы после выбора директории скан шел именно из нее...?
3.Пока еще не дошел.Но как вы видели я реализовал связь через ADO c Access.
Desdechado (2006-02-18 15:57:00) [25]1. FindFirst
2. function SHGetFolderPath(hwnd: HWND; csidl: Integer; hToken: THandle; dwFlags: DWord; pszPath: PAnsiChar): HRESULT; stdcall;
3.while( FindNext ) do begin
qry.Text:='INSERT...';
qry.ExecSQL;
end;