ورود

View Full Version : سوال: گرفتن زیر پوشه های مخفی



loo30fer
پنج شنبه 02 تیر 1390, 00:30 صبح
با سلام
من میخواستم زیر پوشه های در این آدرس رو بگیرم :
C:\Documents and Settings\Loo30fer\Local Settings\Temporary Internet Files\Content.IE5
و در StringList بریزم , البته خیلی جستجو کردم هم تو این انجمن و هم تو گوگل ولی نتیجه نگرفتم چون هر کدوم یک مشکلی داشتن مخصوصا نمیتونستن زیر پوشه های این آدرس رو بگیرن چون مخفی بودن و همینطور دوباره با آدرس میگرفتن مثلا C:\Folder2 به جای Folder2 و کلا تمامی فایلهای توی اون پوشه رو سرچ میکردن و باید میومدم اسم پوشه ها رو همزمان جدا میکردم که اگه تعداد فایلها زیاد باشه سرعت کار پایین میاد.
ممنون میشم کمک بکنید . با تشکر

Felony
یک شنبه 05 تیر 1390, 00:36 صبح
من تو سیستم خودم نتونستم این پوشه رو پیدا کنم ، مربوط به کدوم نسخه از IE میشه ؟

در هر صورت کتابخانه های IOUtils و Types رو به Uses اضافه کنید و کد زیر رو امتحان کنید :

const
Path = 'C:\Documents and Settings\Loo30fer\Local Settings\Temporary Internet Files\Content.IE5';
var
Searcher: TDirectory;
DirList, FileList: TStringDynArray;
ItemName: String;
begin
DirList := Searcher.GetDirectories(Path, '*', TSearchOption.soAllDirectories);
FileList := Searcher.GetFiles(Path, '*.*', TSearchOption.soAllDirectories);

for ItemName in DirList do
ShowMessage(ItemName);

for ItemName in FileList do
ShowMessage(ItemName);
end;

loo30fer
یک شنبه 05 تیر 1390, 11:44 صبح
من تو سیستم خودم نتونستم این پوشه رو پیدا کنم ، مربوط به کدوم نسخه از IE میشه ؟

در هر صورت کتابخانه های IOUtils و Types رو به Uses اضافه کنید و کد زیر رو امتحان کنید :واقعا ممنونم جناب تاجیک خیلی خوشحالم کردین.
راستش من از نسخه 7 IE استفاده میکنم و کلا این پوشه Content.IE5 قابل مشاهده نیست حتی وقتی که پوشه و فایلهای سیستمی رو در حالت نمایش قرار بدین ولی اگه برین تو پوشه Temporary Internet Files و Content.IE5 رو به آدرس اضافه کنید میتونید وارد این پوشه بشین اگه امکان داره ببینید این پوشه توی سیستم شما وجود داره یا نه یا اگه با نام دیگری وجود داره چه نامی رو داره ؟؟؟؟
راستی نام کتابخانه IOUtils در دلفی 7 چیست چون تو دلفی 7 خطا گرفت ولی XE نه.
دلیلی هم که میخوام این پوشه رو دایر بگیرم برای این هست یک پلاگین برای دانلود نوشتم که وقتی یک فایل رو دانلود میکنه دفعه اگه بدون مجددا دوباره اون فایل روی سرور عوض بشه باز مجددا همون فایل رو که دفعه اول دانلود کرده مجددا دانلود میکنه برای همین میخوام پوشه های جاری تو پوشه Content.IE5 رو بگیرم و اسم فایل لینک رو تو این پوشه ها حذف کنم تا این مشکل رفع بشه حالا روشی دیگری برای دانلود وجود داره که نیاز به حذف اون فایل از Cache نباشه ؟؟؟

Felony
یک شنبه 05 تیر 1390, 12:28 عصر
راستش من از نسخه 7 IE استفاده میکنم و کلا این پوشه Content.IE5 قابل مشاهده نیست حتی وقتی که پوشه و فایلهای سیستمی رو در حالت نمایش قرار بدین
همچین چیزی امکان نداره !



اگه امکان داره ببینید این پوشه توی سیستم شما وجود داره یا نه یا اگه با نام دیگری وجود داره چه نامی رو داره ؟؟؟؟
وجود داره ولی نه تو اون آدرسی که شما دادید ، تو 3 آدرس زیر وجود داره که محتوی همشون یکی هست :


C:\Windows\System32\config\systemprofile\AppData\L ocal\Microsoft\Windows\Temporary Internet Files\Content.IE5
C:\Windows\ServiceProfiles\LocalService\AppData\Lo cal\Microsoft\Windows\Temporary Internet Files\Content.IE5
C:\Windows\SysWOW64\config\systemprofile\AppData\L ocal\Microsoft\Windows\Temporary Internet Files\Content.IE5


راستی نام کتابخانه IOUtils در دلفی 7 چیست چون تو دلفی 7 خطا گرفت ولی XE نه.
دلفی 7 این کتابخانه ها رو نداره !


دلیلی هم که میخوام این پوشه رو دایر بگیرم برای این هست یک پلاگین برای دانلود نوشتم که وقتی یک فایل رو دانلود میکنه دفعه اگه بدون مجددا دوباره اون فایل روی سرور عوض بشه باز مجددا همون فایل رو که دفعه اول دانلود کرده مجددا دانلود میکنه برای همین میخوام پوشه های جاری تو پوشه Content.IE5 رو بگیرم و اسم فایل لینک رو تو این پوشه ها حذف کنم تا این مشکل رفع بشه حالا روشی دیگری برای دانلود وجود داره که نیاز به حذف اون فایل از Cache نباشه ؟؟؟
اون قسمت Bold شده رو نفهمیدم ...

loo30fer
یک شنبه 05 تیر 1390, 12:59 عصر
همچین چیزی امکان نداره !
بله درست میگین . راستش تعداد فایلهای داخل پوشه زیاد بود منم برای همین نتونستم پیداش کنم وقتی همه فایلها رو حذف کردم دیدم بله این پوشه قابل مشاهدست.

دلفی 7 این کتابخانه ها رو نداره !
خوب حالا راه حل چیست برای اینکه بتونم تو دلفی 7 ازش استفاده کنم ؟

اون قسمت Bold شده رو نفهمیدم ...
بذارین مجددا بگم. وقتی ما یک فایل تکست رو که روی سرور آپلود کردیم رو دانلود میکنیم که حاوی متن 1 هست رو مشکلی وجود نداره ولی اگه این فایل روی سرور عوض کنیم مثلا متن 1 رو به 2 تغییر بدیم و مجددا فایل رو دانلود کنیم در کل دانلود نمیکنه بلکه همون فایل دانلود شده رو از Cache میگیره و توی مکان روی هارد رو که ما مد نظریم رو کپی میکنه پس مجددا فایلی رو که ما داریم یک فایل تکست هست با محتوی متن 1 هست پس حتما باید بیایم قبل از دستور دانلود اسم فایل رو از لینک بگیریم و از پوشه مربوطه Cache حذف کنیم تا فایل رو دانلود کنه و ایندفعه فایل ما با محتوی متن 2 باشه.

Felony
یک شنبه 05 تیر 1390, 13:21 عصر
به چه صورت فایل رو دانلود میکنید ؟ با چه کنترلی ؟

loo30fer
یک شنبه 05 تیر 1390, 13:33 عصر
به چه صورت فایل رو دانلود میکنید ؟ با چه کنترلی ؟
uses
URLMon, ShellApi;

function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
SourceFile = 'http://www.google.com/images/logos/ps_logo2.png';
DestFile = 'C:\ps_logo2.png';
begin
if DownloadFile(SourceFile, DestFile) then
ShowMessage('Download succesful!')
else
ShowMessage('Error while downloading ' + SourceFile)
end;

Felony
یک شنبه 05 تیر 1390, 14:03 عصر
میتونید دانلود فایل رو مستقل از IE انجام بدید ، مثلا از idHTTP برای دریافت فایل استفاده کنید .

loo30fer
یک شنبه 05 تیر 1390, 14:31 عصر
ممنون من بدنبال یک مثال گشتم و این رو پیدا و ویرایش کردم ولی مشکل اینجاست که تو این قسمت procedure IdHTTP1HeadersAvailable(Sender: TObject; AHeaders: TIdHeaderList; خطا میگیره در صورتی که این رویداد رو ایجاد کردم و همینطوری کد رو کپی و پیست نکردم . ضمنا از دلفی XE استفاده میکنم.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP;

type
TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure IdHTTP1HeadersAvailable(Sender: TObject; AHeaders: TIdHeaderList;
var VContinue: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.IdHTTP1HeadersAvailable(Sender: TObject;
AHeaders: TIdHeaderList; var VContinue: Boolean);
begin
ShowMessage('');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
MemStream: TMemoryStream;
FileStream: TFileStream;
begin
MemStream := TMemoryStream.Create;
try
IdHTTP1.Get('http://www.google.com/images/logos/ps_logo2.png', MemStream);
MemStream.Position := 0;
FileStream := TFileStream.Create('C:\pss_logo2.png', fmCreate);
try
MemStream.SaveToStream(FileStream);
finally
FileStream.Free;
end;
finally
MemStream.Free;
end;
end;

procedure TForm1.IdHTTP1HeadersAvailable(Sender: TObject;
AHeaders: TIdHeaderList; var VContinue: Boolean);
var
ContentDisposition: string;
begin
ContentDisposition := AHeaders.Values['Content-Disposition'];
ContentDisposition := Copy(ContentDisposition, 1 + Pos(';', ContentDisposition), MaxInt);
ContentDisposition := StringReplace(ContentDisposition, 'filename=', '', [rfIgnoreCase]);
ContentDisposition := StringReplace(ContentDisposition, '"', '', [rfReplaceAll]);
FileName := ContentDisposition;
end;

Felony
یک شنبه 05 تیر 1390, 15:35 عصر
کتابخانه IdHeaderList رو به Uses اضافه کنید .