Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Open Folder (*.doc) / 23 сообщений из 23, страница 1 из 1
25.01.2018, 23:16
    #39591363
Cahandar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
добрый день
как можно найти в папке только конкретные тип файлы
например найти в папке где написан в Edit1.Text файлы где написан в Edit2.text

Код: pascal
1.
2.
Edit1.text:='c:\Folder1\';
Edit2.text:='*.doc';



и в результате открывалась в проводнике
...
Рейтинг: 0 / 0
25.01.2018, 23:20
    #39591365
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
...
Рейтинг: 0 / 0
25.01.2018, 23:43
    #39591370
Cahandar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
спасибо что ответили
Но мне надо чтобы когда user хочет посметреть DOC файлы тогда пуск открывается FOLDER с DOC файлами (В этом папке есть и другие тип файлы).

Например.
Код: pascal
1.
   ShellExecute(Handle,'open',PWideChar('D:\Folder\'),nil,nil,1);



но этот команда открывает папку все содержимые. а мне нужно чтобы в этот папке была только *.doc (или *.jpg, *.xls) файлы
...
Рейтинг: 0 / 0
26.01.2018, 00:16
    #39591379
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
Cahandar,
см. TOpenDialog.InitialDir и TOpenDialog.Filter:

Код: pascal
1.
2.
    OpenDialog1.InitialDir := 'D:\Folder';
    OpenDialog1.Filter     := 'Файлы MS Word(*.DOCx)|*.DOC;*.DOCX';
...
Рейтинг: 0 / 0
26.01.2018, 07:46
    #39591416
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
чччД, ТСу надо в Проводнике в отображаемой папке наложить фильтр.

ТС: Разве *.doc в самом окне папки не прокатывает?
Задачу поконкретнее опишите, а то какой-то сферический конь в вакууме...
...
Рейтинг: 0 / 0
26.01.2018, 07:52
    #39591417
DetSimen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
надо перед вызовом диалога просто удалить из папки все не *.doc файлы и всё. :)
...
Рейтинг: 0 / 0
26.01.2018, 10:13
    #39591460
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
Я что-то не помню, чтобы проводник позволял выводить только файла определённого типа. Можно поиск запускать, но это не просто "окно папки" уже будет.
...
Рейтинг: 0 / 0
26.01.2018, 10:29
    #39591469
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
alekcvpЯ что-то не помню, чтобы проводник позволял выводить только файла определённого типа. Можно поиск запускать, но это не просто "окно папки" уже будет.Вам уже ответили про TOpenDialog. Указываете фильтр, открываете, выбираете несколько (нужно указать соотв. опцию), и потом программно делаете с выделенным списком файлов все что угодно.
...
Рейтинг: 0 / 0
26.01.2018, 11:10
    #39591488
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
LSValekcvpЯ что-то не помню, чтобы проводник позволял выводить только файла определённого типа. Можно поиск запускать, но это не просто "окно папки" уже будет.Вам уже ответили про TOpenDialog. Указываете фильтр, открываете, выбираете несколько (нужно указать соотв. опцию), и потом программно делаете с выделенным списком файлов все что угодно.Да это не он спрашивал :)
А вообще задача странная - открыть проводник с фильтром просто так и всё. Что-то тут не так. Наверняка таки OpenDialog нужен.
...
Рейтинг: 0 / 0
26.01.2018, 12:05
    #39591529
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
ну если ТС хочет - то RFTM IExplorerBrowser, IFolderFilterSite, IFolderFilter ...
...
Рейтинг: 0 / 0
26.01.2018, 13:21
    #39591593
Open Folder (*.doc)
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
// uses ... , ShellApi;

procedure TForm1.Button1Click(Sender: TObject);
var
  K: array of TInput;
  c: Char;
begin
  BlockInput(True);
  Tag := GetForegroundWindow();
  if ( ShellExecute(Handle, 'explore', PChar(Edit1.Text), nil, nil, SW_SHOWNORMAL) > 32 ) then begin
    while Tag = GetForegroundWindow() do Sleep(100);
    keybd_event(VK_F3, 0, KEYEVENTF_EXTENDEDKEY , 0);
    keybd_event(VK_F3, 0, KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0);
    for c in Edit2.Text do begin
      SetLength(K, Length(K)+1);
      with K[Length(K)-1] do begin
        Itype := INPUT_KEYBOARD;
        ki.wScan := Word(c);
        ki.dwFlags:= KEYEVENTF_UNICODE;
      end;
    end;
    SendInput(Length(K), K[0], SizeOf(K[0]));
    keybd_event(VK_RETURN, 0, 0, 0);
  end;
  BlockInput(False);
end;
...
Рейтинг: 0 / 0
26.01.2018, 14:23
    #39591682
Cahandar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
АйФолдерПрима,

спасибо но это поск в папке. но очень помогли а я имел виду возможно ли следующее: в Edit1.Text я ввожу адрес, к примеру, D:\Folder1 , а в Edit2.Text ввожу расширение, к примеру, jpg, а результат – открывается указанная папка с файлами только указанного типа?
...
Рейтинг: 0 / 0
26.01.2018, 14:35
    #39591703
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
Cahandar,

А самому такую форму специфическую почему не сваять?
Ложишь на форму 2 Edit и ListBox и полетели (псевдокод):

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    if SetCurrentDir(EditForFolderName.Text) then
       begin
          
           Er:=FindFirst(EditForFileMask.Text,faAnyFile-faDirectory-faVolumeID,Sr)
 
           while Er=0 do
             begin
                  ListBox.Items.Add(Sr.Name);
                  SBuf:=Sr.Name;
                  Er:=FindNext(Sr);
             end;
           SysUtils.FindClose(Sr);
       
       end;
   
...
Рейтинг: 0 / 0
26.01.2018, 14:37
    #39591709
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
CahandarАйФолдерПрима,

спасибо но это поск в папке. но очень помогли а я имел виду возможно ли следующее: в Edit1.Text я ввожу адрес, к примеру, D:\Folder1 , а в Edit2.Text ввожу расширение, к примеру, jpg, а результат – открывается указанная папка с файлами только указанного типа?
Ты это пишешь уже 3-й раз
Уже несколько вариантов предложили.
...
Рейтинг: 0 / 0
26.01.2018, 14:37
    #39591710
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
CahandarАйФолдерПрима,

спасибо но это поск в папке. но очень помогли а я имел виду возможно ли следующее: в Edit1.Text я ввожу адрес, к примеру, D:\Folder1 , а в Edit2.Text ввожу расширение, к примеру, jpg, а результат – открывается указанная папка с файлами только указанного типа?

Напишите своё. У вас уже есть два эдита. Добавьте к ним ListView, по двойному клику в котором будет запускаться Ворд. :-)
Зачем использовать ущербный Проводник, не позволяющий реализовать вашу задумку.
...
Рейтинг: 0 / 0
26.01.2018, 16:16
    #39591781
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
goldmi45Зачем использовать ущербный Проводник, не позволяющий реализовать вашу задумку.

еще как позволяет
не можешь - твои проблемы
...
Рейтинг: 0 / 0
26.01.2018, 17:03
    #39591811
Open Folder (*.doc)
Cahandar,

eView.cmd:
Код: powershell
1.
2.
3.
4.
@echo off
mkdir %~dp1%~x1
for %%i in (%~dp1*%~x1) do mklink /H %~dp1%~x1\%%~nxi %%~dpnxi
explorer %~dp1%~x1

usage:
Код: powershell
1.
eView.cmd c:\tmp\.doc


или
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
procedure Exe(aVerb,aFile,aParm,aDir:PChar;aShow:Integer;aWait:Boolean);
var
 sx : TShellExecuteInfo;
begin
  ZeroMemory(@sx,SizeOf(sx));
  with sx do begin
    cbSize := SizeOf(sx);
    Wnd := Form1.Handle;
    lpVerb := aVerb;
    lpFile := aFile;
    lpParameters :=aParm;
    lpDirectory := aDir;
    nShow:=aShow;
  end;
  if ShellExecuteEx(@sx) then begin
    if aWait then WaitForSingleObject(sx.hProcess, 12345);
    CloseHandle(sx.hProcess);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
const
  cm1 = '/c mkdir ';
  cm2 = '/c for %i in (';
  cm3 = ') do mklink /H ';
  cm4 = '\%~nxi %~dpnxi';
var
  mk : String;
  cmd : String;
  e1,e2 : String;
  sx : TShellExecuteInfo;
begin
  e1 := 'c:\tmp\';
  e2 := '.doc';
  mk :=  cm1 + e1+e2;
  cmd := cm2 + e1+'*'+e2 + cm3 +e1+e2+ cm4;
  Exe('', 'cmd.exe', PChar(mk), nil, SW_HIDE, True);
  Exe('', 'cmd.exe', PChar(cmd), nil, SW_HIDE, True);
  Exe('explore', PChar(e1+e2), nil, nil, SW_SHOWNORMAL, False);
end;

...
Рейтинг: 0 / 0
27.01.2018, 23:46
    #39592279
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
goldmi45чччД, ТСу надо в Проводнике в отображаемой папке наложить фильтр.

ТС просто не знает, что ему надо. :)

ТС, тебе нужен не проводник, а компонент "OpenDialog".
...
Рейтинг: 0 / 0
29.01.2018, 08:16
    #39592576
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
Tactical Nuclear Penguingoldmi45Зачем использовать ущербный Проводник, не позволяющий реализовать вашу задумку.

еще как позволяет
Покажи, не будь голословным.
Tactical Nuclear Penguinне можешь - твои проблемы
Не мои, а ТСа.
...
Рейтинг: 0 / 0
29.01.2018, 08:42
    #39592588
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
goldmi45Tactical Nuclear Penguinпропущено...


еще как позволяет
Покажи, не будь голословным.

на, смотри
...
Рейтинг: 0 / 0
29.01.2018, 12:44
    #39592727
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
Tactical Nuclear Penguin,
Ну это как-бы снова встраивание проводника в своё приложение, а в ТЗ стоит: открыть окно стандартного проводника в нужную папку с фильтром.
...
Рейтинг: 0 / 0
29.01.2018, 16:42
    #39592865
Tactical Nuclear Penguin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
alekcvpTactical Nuclear Penguin,
Ну это как-бы снова встраивание проводника в своё приложение, а в ТЗ стоит: открыть окно стандартного проводника в нужную папку с фильтром.

гм. а чем проводник встроенный отличается от проводника не встроенного??
функциональность у них абсолютно одна и та же
лучшего решения ТС не получит, если он хочет именно проводник
...
Рейтинг: 0 / 0
29.01.2018, 18:03
    #39592929
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Open Folder (*.doc)
Tactical Nuclear Penguin,

Так ТС сам не знает, чего хочет :)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Open Folder (*.doc) / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]