Lista plików w koszu

0

Jak uzyskać listę plików w koszu.

Standardowe szukanie w folderze RECYCLER lub RECYCLED daje wynik w postaci np.:
C:\RECYCLER\S-1-5-21-448539723-1060284298-839522115-1003\Dc6.exe
dla pliku w koszu: Plik.exe

0

W reke' IShellFolder, folder specjalny Recycle Bin'' i dalej jak z drukarkami

http://www.efg2.com/Lab/OtherProjects/SHPrinters.ZIP

0

Nie za bardzo wiem jak to użyć.

Kombinowałem z SHPrinters, ale otrzymuję błąd kompilatora "Typy parametrów w zmiennej muszą być identyczne.":

hOK := EnumIDList.Next(1, TempItemIDList, Retrieved);

Nie wiem jak to zmienić.

Druga sprawa, kombinowałem z pobraniem wirtualnego folderu:

uses ShlObj;

function GetFolderPath(Folder: Integer): string;
var
  Path: array[0..MAX_PATH] of Char;
begin
  SHGetSpecialFolderPath(0, Path, Folder , False);
  Result := Path;
end;

begin
 ShowMessage(GetFolderPath(CSIDL_BITBUCKET));
end;

...ale otrzymuję pusty string. O tym samym piszą w dziale "Artykuły". Im także zwraca pusty ciąg.

Są jeszcze kombinację z komponentem ShellListView, ale niestety w Delphi 2006 (D11), tego komponentu nie mam.

0

troche pozno ale...

  1. Pobieramy IShellFolder (najlepiej z desktop)
  2. Pobieramy kosz CSIDL_BITBUCKET
  3. Bindujemy kosz z shellfolder BindToObject
  4. Listujemy kosz EnumObjects (uwaga na flage SHCONTF_NONFOLDERS oraz SHCONTF_INCLUDEHIDDEN)
  5. I pobierawmy nazwe (GetDisplayNameOf)

co daje nam w efekcie kod

Jak pobrać nazwy plików w koszu

BTW dopiero zuwazylem

Opi napisał(a)

Kombinowałem z SHPrinters, ale otrzymuję błąd kompilatora "Typy parametrów w zmiennej muszą być identyczne.":

hOK := EnumIDList.Next(1, TempItemIDList, Retrieved);

Nie wiem jak to zmienić.

troche wstyd nie poradzic sobie z takim problemem ....

0
reichel napisał(a)

troche pozno ale...

...z efektem [soczek]

Jeszcze, gdyby tak pokazywało foldery i ich zawartość to już by mi to wystarczyło (obecnie tylko nadrzędne i tylko pliki wykazuje).

0

dodalem koment (byl glupi blad w until ...) w windowsie tez nie pokazuje tych plikow ....
tak jak napisalem mozna szukac folderow i dlubac w bazie.

Co ciekawe foldery juz maja poprawnna strukture (Win 2003), tak wiec mozna sprawdzic czy folder i listowac w tradycyjny sposob.

0

reichel, pomóż, bo ja niekumaty.

Nie wiem w którym miejscu mogę sprawdzić, że obiekt to folder i jak dalej szukać w tym folderze, bo chyba nie funkcją TSearchRec.

until (hr <> NOERROR);

tego błędu też nie widziałem i rzeczywiście tylko jeden plik znajdywało w koszu.

0

powklejaja kawalki kodu do google ....

czy folder WIN32_FIND_DATA
tak mozna funkcja/struktura TSearchRec

0

Nic mi to nie pomogło...

W

FD.cFileName
FD.cAlternateFileName

nazwa pliku jest zwracana w postaci plików: dcCYFRA.ROZSZERZENIE i nie można z nich odczytać, czy to folder, czy plik. No chyba, że po tym, że nie ma rozszerzenia, to wtedy folder.

A jeśli standardowo odczytam:

ItemName

to jest zwracane miejsce, gdzie plik wcześniej istniał na dysku :/

reichel, jeśli wiesz, to napisz gotowca, bo szkoda tak się rozpisywać.

0

Na ntfs bedzie to

%sysdrive%\recycler\SID

na fat baedzie np c:\Recycled

kazdy user bedzie mjal swoj kosz i kazda partycja tez ma swoj ... zatem zostaje sporo wersji do sprawdzenia. Dziadostwo jednak nie podaje w pidlu pelnej sciezki (a ta do pulpitu... czyli nigdzie).

a tak w ogóle to tu jest info czy folder czy nie dwFileAttributes

1 użytkowników online, w tym zalogowanych: 0, gości: 1