SHGetFileInfo и Desktop

4 отговора 103 прегледа
#1

SHGetFileInfo и Desktop

значи: има една функция SHGetFileInfo, с която получавам информация относно файлове и поддиректории за дадена директория. проблемът възниква, когато се опитам чрез нея да взема съдържанието на "директорията" Desktop (или My Computer, или My Documents...). Въпросът ми е има ли подобна на нея функция, която го върши това - да вземе съдържанието на "директорията" Desktop.

стой та гледай
Отговор
в отговор на lndependent #2

Never mind

направих си го. но няма да ви кажа как

стой та гледай
Отговор
в отговор на lndependent #3

Re: SHGetFileInfo и Desktop

Въпроса е решен твърде елегантно с обектите Scripting.FileSystemObject - ако искаме да боравим с файлове и директории. За да вземем съответно директориите на Dekstop, Program Files, Windows и т.н. можем да ползваме друг обект - Wscript.Shell, например в конкретния случай:

Set W = CreateObject("WScript.Shell")
f = W.SpecialFolders("Desktop")

където f ще сочи вярната директория

чети и дишай по-леко
Отговор
в отговор на Pechenia #4

чисто API

SHGetSpecialFolderPath() - не е толкова елегантно, но върши абсолютно същата работа. освен това не задължава да използваш VB или low-level COM в другите езици.
а повярвай, бъзикането по файловата система през VB не е най-безопасния подход.

стой та гледай
Отговор
в отговор на lndependent #5

Re: чисто API

Де,де... че то за това е направено на COM, да може да се ползва от много повече места - такива които работят с COM, а не работят с WinAPI. А за безопасното: това е класически вариант за работа в Web приложения ServerSide. Ако ми кажеш че един Web сървър не държи на сигурността, хич няма да ти повярвам.
Инак за чистото API - и аз съм привърженик, но когато работя с Delphi например и не ми се налага да предефинирам функции.

чети и дишай по-леко
Отговор