C#程序如何实现自删除?
说说思路吧~   
 搜的资料貌似多是VC   DEPHI的。。。
------解决方案--------------------一般都是写一个BAT文件然后退出运行BAT,因为程序在自己运行的时候是不能删除本身的 
------解决方案--------------------我以前试过直接可以删除的,直接可以删除的吧,你试了没有? 
------解决方案--------------------运行到途中基本不可能删除自己吧 
 我这有一份VC的代码 大家可以参考一下思路 
 虽然是VC的 用C#实现应该差别不会太大 
 以前试过可以直接删除的应该是纯属扯淡 :P 
 这份代码的原作者是vcbear   
 #include <windows.h>  
 #include <stdlib.h>  
 #include <tchar.h>    
 int WINAPI WinMain(HINSTANCE hInstance, 
 				   HINSTANCE hPrevInstance, 
 				   LPSTR lpszCmdLine,int nCmdShow) 
 { 
 	if(__argc == 1){ 
 		TCHAR szPathOrig[_MAX_PATH], szPathClone[_MAX_PATH]; 
 		GetModuleFileName(NULL, szPathOrig, _MAX_PATH); 
 		GetTempPath(_MAX_PATH, szPathClone); 
 		GetTempFileName(szPathClone, __TEXT( "Del "), 0, szPathClone); 
 		CopyFile(szPathOrig, szPathClone, FALSE); 
 		HANDLE hfile = CreateFile(szPathClone, 0, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, NULL); 
 		TCHAR szCmdLine[512]; 
 		HANDLE hProcessOrig = OpenProcess(SYNCHRONIZE, TRUE, GetCurrentProcessId()); 
 		wsprintf(szCmdLine, __TEXT( "%s %d \ "%s\ " "), szPathClone, hProcessOrig, szPathOrig); 
 		STARTUPINFO si; 
 		ZeroMemory(&si, sizeof(si)); 
 		si.cb = sizeof(si); 
 		PROCESS_INFORMATION pi; 
 		CreateProcess(NULL, szCmdLine, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi); 
 		CloseHandle(hProcessOrig); 
 		CloseHandle(hfile); 
 	} 
 	else{ 
 		HANDLE hProcessOrig = (HANDLE) _ttoi(__targv[1]); 
 		WaitForSingleObject(hProcessOrig, INFINITE); 
 		CloseHandle(hProcessOrig); 
 		DeleteFile(__targv[2]); 
 	} 
 	return 0; 
 }