วันจันทร์ที่ 2 สิงหาคม พ.ศ. 2553

•• วิธีลบไฟล์หรือโฟลเดอร์ที่ไม่สามารถลบออกได้ ••เก็บมาจาก it-friend&Phanward.net
เ มื่อสองวันก่อนต้องการ uninstall โปรแกรม Rapiddown หลัง uninstall ยังมีไฟล์ .dll ที่ไม่สามารถลบออกได้ ก็เลยลองหาวิธีลบจากใน google แล้วโชคดีไปเจอวิธีลบไฟล์ที่เราต้องการลบ แต่ลบด้วยวิธีการกด delete ไม่ได้ มาจากเว็บ xona.com



วิธีลบไฟล์หรือโฟลเดอร์ที่ไม่สามารถลบออกได้

เคยต้องการลบไฟล์หรือโฟลเดอร์ด้วยการกด delete แล้วพบข้อความแจ้งข้อผิดพลาด
แบบนี้กันบ้างไหม

แบบที่ 1

อ้างถึง:
Cannot delete XXXXXXXXXX: Access is denied.
Make sure the disk is not full or write-protected and that the file is not currently in use.

แบบที่ 2

อ้างถึง:
Cannot delete XXXXXXXXXX: It is being used by another person or program.
Close any programs that might be using the file and try again.

แบบที่ 3 [กรณีลบด้วยคำสั่ง DOS]

อ้างถึง:
The process cannot access the file because it is being used by another process.

คำเตือน : การลบไฟล์ต่างๆ เป็นความเสี่ยงที่เกิดขึ้นกับตัวคุณเอง ทางเราไม่รับผิดชอบสำหรับความเสียหายใดๆ อันเกิดกับคอมพิวเตอร์ของคุณ หรือตัวคุณ จากการทำตามคำแนะนำจากเว็บนี้

End the Locking Process

คำแนะนำแรก ไฟล์ที่ลบไม่ได้นั้น เนื่องจากถูกใช้งานอยู่ โดยทั่วไปเป็นเพราะไฟล์นั้นเป็นส่วนหนึ่งของโปรแกรม หรือโดนล็อคไว้โดยโปรแกรมที่กำลังทำงานอยู่ ซึ่งอาจเป็นสปายแวร์ หากเป็นสปายแวร์ขั้นแรกให้ปิดโปรแกรมสปายแวร์นั้นที่ กำลังทำงานอยู่ ถ้าไม่ได้เกิดจากสปายแวร์ก็ข้ามขั้นตอนนี้ไปได้เลย

กดปุ่ม 3 ปุ่มนี้พร้อมกัน Ctrl-Alt-Delete เพื่อเรียก Windows Task Manager ขึ้นมา ที่แท็บ Processes ให้หา Processes ที่ไม่ควรที่จะมีการทำงาน [คุณต้องทราบเองว่าเป็นตัวไหน]

บางครั้งชื่อของสปายแวร์หาได้ง่าย แต่บางครั้งก็เข้ารหัส หรือตั้งใจใช้การสุ่มเลือกเอาไว้ ถ้าสงสัยไฟล์นั้นลองหาในลิงก์นี้ http://www.google.com/search?q=msbb%2Eexe (ค้นหา msbb.exe ใน Google แสดงผลว่าเป็นสปายแวร์)

เมื่อลบ process แล้ว ในบางครั้งคุณก็สามารถลบไฟล์ที่เกี่ยวข้องกับ process นั้นได้

Shut Down "explorer.exe" and use DOS

ถ้าวิธีข้างต้นยังใช้งานไม่ได้ บางทีไฟล์ถูกล็อกไว้ด้วย "explorer.exe" ไม่ใช่ Internet Explorer นะ เป็นคนละตัวกัน Explorer เป็น user interface ของ windows ถ้าปิด explorer จะทำให้บางอย่างหายไป เช่น Start menu หรือ taskbar เป็นต้น การปิด explorer ไม่ได้ทำลายระบบ ให้คิดว่า explorer.exe เป็นเหมือนอีกโปรแกรมหนึ่งที่กำลังทำงานอยู่

ตอนนี้ให้ใช้ Task Manager ปิด "explorer.exe" ไม่ต้องกลัวว่าเครื่องคอมจะทำงานไม่ได้ แค่โดนจำกัดการทำงานบางอย่างในตอนนี้เท่านั้น แต่เราสามารถใช้ Task Manager เรียก Explorer กลับมาทำงานอีกครั้งได้

หลังจากปิด "explorer.exe" แล้ว ในหน้าต่างของ Task Manger ให้เลือก "File" > "New Task (Run...)" จากนั้นให้พิมพ์คำว่า cmd แล้วเคาะ Enter

ตอนนี้อยู่ในหน้าต่าง DOS แล้ว [ตอนนี้จะเป็นการลบไฟล์โดยไม่ใช้ Windows Explorer และโปรแกรมอื่นๆ ที่จะต้องการให้ explorer.exe ทำงาน อาจเป็นไปได้ว่า explorer.exe กำลังใช้ไฟล์ที่เราต้องการลบ และป้องกันเราจากการทำการลบ คำตอบนี้จะให้คุณปิด explorer และย้ายคุณสมบัตของไฟล์ที่กำลังใช้งานอยู่ แล้วยอมให้เราลบมันได้] ให้ใช้คำสั่งต่อไปนี้ใน DOS เพื่อช่วยในการเข้าถึงไดร์ฟ โฟลเดอร์ หรือไฟล์ที่เราต้องการลบ

อ้างถึง:
cd \ ________________________ go to drive root
cd FOLDER_NAME_HERE _________ go into folder
cd .. _______________________ go up to parent folder (designated by two periods "..")
cd c: _______________________ go to specified drive

ลบไฟล์ด้วยการใช้คำสั่งต่อไปนี้

อ้างถึง:
del FILE_NAME_HERE __________ deletes specified file
del *.* _____________________ deletes all files in current folder

ลบโฟลเดอร์ด้วยการใช้คำสั่งต่อไปนี้

อ้างถึง:
rd FOLDER_NAME_HERE _________ removes (deletes) folder if empty (contains no files)

เมื่อคุณลบไฟล์หรือโฟลเดอร์เรียบร้อยแล้ว ให้กลับไปที่ Task Manager แล้วรัน "explorer.exe" เพื่อเรียก Explorer กลับคืนมาทำงานเหมือนเดิม ด้วยการเข้าไปที่ "File" > "New Task (Run...)" ในหน้าต่าง Task Manager แล้วพิมพ์คำว่า explorer.exe

Delete the file or folder using the DOS names:

บางครั้งชื่อไฟล์เป็นชื่อที่ใช้ไม่ได้ใน Windows เช่น ไฟล์ที่ลงท้ายด้วย .. จะเข้าไม่ได้ในวินโดว์ ต้องลบไฟล์แบบนี้ในดอสด้วยการใช้ชื่อแบบดอส

ใช้คำสั่งต่อไปนี้เพื่อให้แสดงชื่อไฟล์หรือโฟลเดอร์แ บบดอส
อ้างถึง:
dir *.* /x __________________ lists files and folders in DOS name format

อย่างเช่น "Favorites" จะแสดงชื่อในดอสเป็น "FAVORI~1" คุณสามารถเข้าถึงไฟล์หรือโฟลเดอร์ที่ใช้ชื่อที่ใช้กั บวินโดว์ไม่ได้ ได้ด้วยการใช้ชื่อแบบดอสแทนชื่อแบบวินโดว์

Delete File Before Locking Process Starts Via Batch File

วิธีนี้ใช้ในกรณีที่เราไม่สามารถลบ process ที่กำลังล็อคไฟล์ที่คุณต้องการลบ ด้วยการลบไฟล์ก่อนที่ process จะมีโอกาสล็อคไฟล์นั้น

สมมติว่าเราต้องการลบไฟล์ชื่อ "toolbar.dll" ที่อยู่ใน "C:\Program Files\Toolbar"
ก็คือลบไฟล์นี้ตามที่อยู่ในนี้ "C:\Program Files\Toolbar\toolbar.dll"

• สร้าง text file ไว้ที่ Desktop ด้วยการคลิกขวาที่ Desktop เลือก New เลือก Text Document
• Rename ไฟล์ "New Text Document.txt" เป็นชื่อ "delete.bat"

นามสกุล .bat คือ batch files ซึ่งเป็นรายการคำสั่งดอสที่จะทำงานเมื่อ batch file ทำงาน

• ให้แก้ไข batch file ด้วยการคลิกขวาที่ไฟล์ "delete.bat" เลือก "Edit"
• ให้ใส่ข้อความต่อไปนี้ลงไป (ใส่เครื่องหมายคำพูดด้วยนะ)

อ้างถึง:
REM Delete Batch File
del "C:\Program Files\Toolbar\toolbar.dll"
pause

“del” เป็นคำสั่งลบ “pause” เพื่อให้คุณเห็นว่าเกิดอะไรขึ้นก่อนที่ batch files ปิด เครื่องหมายคำพูดที่ใช้ใน “Program files” เพื่อป้องกันการตีความผิดว่าเป็นคำ 2 คำ จากการเว้นวรรค คำสั่ง rd ในดอสไม่สามารถย้าย directories ที่ไม่ว่าง

• ไอค่อนของไฟล์ควรเปลี่ยน เพื่อช่วยแสดงว่านามสกุลได้ถูกเปลี่ยนจาก ".txt" เป็น ".bat"
• การเรียกใช้งาน batch file ด้วยการดับเบิลคลิกที่ batch file

ลองตรวจดูว่า "C:\Program Files\Toolbar\toolbar.dll" ถูกลบไปแล้ว
แต่น่าจะยังอยู่ เพราะ process ควรจะยังถูกล็อคอยู่
ถ้าไฟล์ถูกลบไปแล้ว คุณสามารถจะลบมันได้โดยไม่ต้องใช้ batch file
ถ้าเราไม่มีไฟล์ที่ต้องการลบ แล้วจะเรียก batch file ที่เราสร้างขึ้น เพื่อลบไฟล์ที่เราไม่มีในเครื่อง จะทำไม่ได้
batch file สามารถถูกเรียกมาใช้งานเมื่อไหร่ก็ได้ เมื่อไฟล์ที่ถูกล็อคไว้ด้วย process ไม่ได้ทำงานอยู่ นี่คือจุดมุ่งหมายของการใช้งาน batch file

วิธีเรียกใช้งาน batch file เมื่อ process ไม่ได้ทำงาน

• คลิกที่ Startup > Programs > Startup คลิกขวาเลือก Explore จะเปิดหน้าต่างนี้ขึ้นมา
"C:\Documents and Settings\USERNAME\Start Menu\Programs\Startup"
• Copy "delete.bat"
• Paste "delete.bat" ใน Startup ข้างบน

ตอนนี้ batch file จะรันตอนเปิดเครื่องขึ้นมา เพื่อให้ทำงานก่อน process ที่ล็อคไฟล์

• ลองรีบูทคอมพิวเตอร์แล้วดูว่าไฟล์ถูกลบหรือไม่

การตรวจดูว่าวิธีข้างตนใช้ได้ผล

• ไฟล์ใน "C:\Program Files\Toolbar\toolbar.dll" หรือ ไฟล์ที่คุณเลือกจะลบควรจะถูกลบเรียบร้อยแล้ว
• ลบไฟล์ “delete.bat” ออกจาก “Startup”

เสร็จ

Infinite Loop Batch File

กรณีไฟล์ที่เราต้องการลบ ประกอบไปด้วยไฟล์ที่สามารถรัน process ให้ทำงานด้วยตัวของมันเองได้

ให้บูทใน safe mode ด้วยการกด F8 ตอนรีบูทเครื่อง และให้เราสร้าง infinite loop batch file [แบทไฟล์ที่วนลูปแบบไม่สิ้นสุด] สมมติว่าลบไฟล์ใน "C:\Program Files\Toolbar\toolbar.dll" ให้สร้างแบทไฟล์แบบนี้

อ้างถึง:
REM Infinite Loop Delete Batch File
:loop
del "C:\Program Files\Toolbar\toolbar.dll"
goto loop

แล้วรันแบทไฟล์ เพื่อหยุดการทำงาน process ที่ล็อคไฟล์นั้น ไฟล์ก็จะถูกลบได้

Use Another Operating System

ถ้าคุณมีระบบปฏิบัติการ 2 ระบบ ให้บูทเข้าไปในอีกระบบปฏิบัติการ แล้วลบไฟล์ที่ลบไม่ได้ในระบบปฏิบัติการแรก

Use "Process Explorer" To Find Locking Process

ดาวน์โหลดโปรแกรม Process Explorer (ฟรีแวร์)
http://www.microsoft.com/technet/sys...sExplorer.mspx
เพื่อใช้แยกแยะว่าโปรแกรมไหนเปิดไฟล์หรือไดเรกทอรี่ไ หน ช่วยดู process ที่ล็อกไฟล์ที่เราต้องการลบได้

ตัวอย่างเช่น ปิดการใช้งานโปรแกรมแล้ว แต่ Process Explorer จะยินยอมให้ตรวจสอบไฟล์ที่ควบคุมไฟล์ที่ถูกล็อคเอาไว ้อย่างไม่เหมาะสม ทำให้สามารถจัดการไฟล์ที่ต้องการลบแต่ถูกล็อคไว้ได้

Show Locked Files of a Process:

การตั้งค่าให้ Process Explorer แสดงไฟล์ที่ถูกล็อคไว้ ให้เลือกเมนู View เลือก "Show lower pane" เมื่อคุณเลือกหรือไฮไลท์ process บนหน้าต่างด้านบน ล็อคไฟล์จะถูกแสดงไว้ในหน้าต่างด้านล่าง

จำไว้ว่าต้องเลือก process เพื่อหาไฟล์ที่กำลังถูกล็อค คุณไม่สามารถทำแบบย้อนกลับ ด้วยการเลือกไฟล์ เพื่อหา process ที่กำลังล็อคไฟล์อยู่

Another Idea: Use "GiPo@MoveOnBoot" to Move or Delete File in Next System Boot

GiPo@MoveOnBoot
ดาวน์โหลดฟรีแวร์นี้มาใช้ช่วยลบตอนบูทเครื่องครั้งต่ อไป
http://www.gibinsoft.net/gipoutils
เลื่อนลงมาที่ด้านล่างหาที่หัวข้อ Old Version (Freeware)
เลือก GiPo@MoveOnBoot

อ้างถึง:
REFERENCE
http://xona.com/2004/08/19.html