PDA

View Full Version : سوال: حذف کردن فایل



www.pc3enter.tk
پنج شنبه 23 تیر 1390, 02:08 صبح
سلام دوستان
من می خواستم بپرسم که
در فلش من یک ویروس وجود داره که می آید تمام فایل ها را پنهان و بعد از تمام فایل ها یک شورت کات تهیه می کند

می خواستم بدانم چطوری می توانم تمام فایل های شورت کات را حذف کنم
(البته دستور آن را می دانم ولی 37 تا شورت کات را با 37 دستور پاک کردن غیر عقلی به نظر می رسد)

kill "i:\music.ink"

و یک سوال دیگه که دوباره چطوری می توانم فایل های پنهان را برگردانم
(البته دستور این هم می دا .......)

setattr ("i:\music"),vbnoraml

امیدوارم منظورم را رسانده باشم

باتشکر

returnx
پنج شنبه 23 تیر 1390, 09:37 صبح
برای اینکار با کنترل Filebox اسم فایل های ShortCut رو بگیر بعد یک جا لیستشون کن بعد با یک حلقه پدرشون در بیار...
واست یک تیکه کدی که خودم واسه ی یک برنامه دیگه نوشته بودم و میزارم باید یکم توش تغییرات ایجاد کنی (شرمنده وقت نداشتم):

Dim extension As String * 4
For i = 0 To File1.ListCount - 1
File1.ListIndex = i
'-----------Detect Extension Of File & Set Icon---------------
extension = Right(File1.FileName, 4)

If extension = ".ppt" Or extension = ".pps" Or extension = ".ppx" Or extension = "pptx" Then
ListView1.ListItems.Add , , File1.FileName, 3, 3
ElseIf extension = ".pdf" Or extension = ".PDF" Then
ListView1.ListItems.Add , , File1.FileName, 2, 2
ElseIf extension = ".bmp" Or extension = ".jpg" Or extension = ".png" Or extension = ".gif" Then
ListView1.ListItems.Add , , File1.FileName, 4, 4
ElseIf extension = ".doc" Or extension = "docx" Then
ListView1.ListItems.Add , , File1.FileName, 5, 5
ElseIf extension = ".mpg" Or extension = ".mp4" Or extension = ".mov" Then
ListView1.ListItems.Add , , File1.FileName, 6, 6
ElseIf extension = "html" Or extension = ".htm" Or extension = ".com" Then
ListView1.ListItems.Add , , File1.FileName, 7, 7
ElseIf extension = ".zip" Or extension = ".rar" Then
ListView1.ListItems.Add , , File1.FileName, 8, 8
ElseIf extension = ".exe" Then
ListView1.ListItems.Add , , File1.FileName, 9, 9
ElseIf extension = ".bas" Then
ListView1.ListItems.Add , , File1.FileName, 11, 11
ElseIf extension = ".vbp" Then
ListView1.ListItems.Add , , File1.FileName, 12, 12
ElseIf extension = ".asm" Then
ListView1.ListItems.Add , , File1.FileName, 13, 13
ElseIf extension = ".lsc" Then
ListView1.ListItems.Add , , File1.FileName, 14, 14
End If

Next i
If Dir1.Path <> sub_path Then
ListView1.ListItems.Add , "back", , 10, 10

End If

اون 4 خط اول مشکلت رو بر طرف میکنه ، بقیش بدردت نمیخوره ، واست گذاشتم تا روش کار رو متوجه بشی...
فقط اگه extension برابر پسوند فایل ShortCut بود به لیستت اظافه کن ، بقیشم که مشخصه...
فقط چون من نیاز داشتم فایل هایی مثل Docx که پسوندشون 4 کارکتری تشخیص بدم طول extension رو چهار کارکتر گرفتم که شما باید پسوند های سه کارکتری رو به علاوه "." بدید مثلا "PDF."...
موفق باشید.../

www.pc3enter.tk
پنج شنبه 23 تیر 1390, 10:28 صبح
دستون درد نکنه همین که من را راهنمایی کردید خیلی ممنونم

www.pc3enter.tk
پنج شنبه 23 تیر 1390, 12:17 عصر
دوست عزیز من این کار را انجام دادم ولی جواب نداد و error داد

اگر زحمتی نیست پروژه را برایم لود کن تا ببینم مشکل از کجاست
باتشکر

returnx
پنج شنبه 23 تیر 1390, 12:58 عصر
اون تیکه کد از یک پروژه دیگه هست که خیلی زیاده و نمیتونم پروژه رو بزارم اما میتونم واستون بک سورس کوچیک درست کنم...
در ضمن یک راه ساده تر هم به ذهنم رسید...
اول شما path کنترل Filelistbox رو برابر درایو فلشتون قرار بده بعد خاصیت pattern کنترل File Listbox رو برابر *.lnk (بخاطر بهم ریختگی شرمنده) اینجوری فقط فایل های ShortCut لیست میشن ...
بقیش که فکر کنم مشخصه...
اگه باز هم نتونستی ، واست یک برنامه کوچیک درست میکنم...

www.pc3enter.tk
پنج شنبه 23 تیر 1390, 15:40 عصر
نه نشد روش کار کردم

من path را روی ink تنظیم کردم ولی باز هم ارور خطا میده

قدم به قدم کاری که گفتی انجام دادم ولی نشد

حالا بابد چه کار کنم

returnx
پنج شنبه 23 تیر 1390, 20:07 عصر
حالا بابد چه کار کنم
حالا هیچی ، فقط این پروژه ای که نوشتم رو یک نگاهی کنید...
تو Textbox اولی فقط کافیه فایل هایی که میخوای پاکشن رو بنویسی که واسه شما میشه *.lnk بعد تمام فایل های ShortCut لیست میشن بعد دکمه Delete رو میزنید...
تذکر: دقت کن که تو اون textbox اولیه که جلوش نوشتم All Or Part of... فایل هایی که میخوای پاکشن رو بنویسی وگرنه هر فایلی که تو کنترل File List Box که گذاشتم باشه ، برنامه پاک میکنه...
(از ما گفتن بود،اگه اشتباهی تو نمایش فایل ها انجام دادید و فایل هاتون پاک شد اونموقع مسئولیت با خودتونه...:لبخند:)

www.pc3enter.tk
جمعه 24 تیر 1390, 01:47 صبح
دستون درد نکنه کارم راه افتاد

برنامه اولش اروور داد ولی بعدش اروور آن را بر طرف کردم
=================
حالا من برای برگردادن فولدرها از هیدن / به شوو از این دستور استفاده کردم ولی خوب جواب نداد

SetAttr (File1.Path & File1.FileName), vbNormal

البته داخل 1 file پوشه ی hidden را نشان نمی دهد

گزینه ی hidden را شوو کردم ولی نشان نداد

اروور هم نداد

What should I do now

returnx
جمعه 24 تیر 1390, 10:02 صبح
برنامه اولش اروور داد ولی بعدش اروور آن را بر طرف کردم

من تست کرده بودم چه خطایی داشت !؟ نباید خطایی میداشت!؟


البته داخل 1 file پوشه ی hidden را نشان نمی دهد

گزینه ی hidden را شوو کردم ولی نشان نداد

خوب نباید هم نشون بده ، چون کنترل Listbox فقط فایل ها رو لیست میکنه ، برای نشون دادن فولدر ها شما باید از کنترل Directory یا همون Dir استفاده کنید ، یک تیکه کد کوچیک از همون میزارم نگاه کن:

Dim token As String * 1
Dim folder_name As String
Dim temp As String
Dim last_index As Integer
ListView1.ListItems.Clear
Dir1.ListIndex = first_index
For i = Dir1.ListIndex + 1 To Dir1.ListCount - 1
Dir1.ListIndex = i
'Dir1.Path = Dir1.List(i)
temp = Dir1.List(i)
For j = Len(temp) To 1 Step -1
token = Mid(temp, j, 1)
If token = "\" Then
folder_name = Mid(temp, j + 1, Len(temp) - (j - 1))
Exit For
End If
Next j
ListView1.ListItems.Add , , folder_name, 1, 1
'Dir1.ListIndex = last_index
Next i
Dir1.ListIndex = first_index

البته باید یکسری تغییرات توش بدی ، من این و اسه ی یک List View نوشتم که تمام فولدر های دایرکتوری رو تو ListView بتونم نمایش بدم ، شما میتونی بسته به نیازت این تکه کد رو تغییر بدی...

shedayat
جمعه 24 تیر 1390, 11:00 صبح
سلام.
با یه دستور ساده می تونین این کار رو انجام بدین:
دستور برای از حالت مخفی در آووردن تموم پوشه ها و زیر پوشه هاش:
Shell "attrib -h -s X:\* "

برای حذف کردن فایل ها با پسوند مورد نظرتون از این کد استفاده کنید:
Shell "cmd /c " & "del X:\*.lnk"