自杀程序,删掉自身,包括执行程序所在的文件夹。

仅在windows下进行了测试,使用语言C#

        string fileName = Path.GetTempPath() + "killmyself.bat";
FileInfo fi = new FileInfo(fileName);
if(fi.Exists)
fi.Delete();
StreamWriter bat = new StreamWriter(fi.OpenWrite()); bat.WriteLine("cd ..");
//bat.WriteLine($"del \"{Environment.CurrentDirectory}\" /q");
bat.WriteLine($"rd \"{Environment.CurrentDirectory}\" /Q /S"); //删除包括执行程序的文件夹
bat.WriteLine($"del \"{fileName}\" /q"); //删除临时bat文件 bat.Close();
ProcessStartInfo info = new ProcessStartInfo(fileName);
info.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(info);
Environment.Exit(0);

递归删除目录的样例代码

    /// <summary>
/// 递归删除目录
/// </summary>
/// <param name="dir"></param>
public static void Deletedir(DirectoryInfo dir)
{
if (!dir.Exists)
{
Console.WriteLine("Directory not exists");
return;
} foreach (var item in dir.GetDirectories())
{
Deletedir(item);
}
try
{
dir.Delete(true);
Console.WriteLine("delete " + dir.FullName);
}
catch (Exception)
{
}
}

自杀程序&递归删除目录的更多相关文章

  1. Java实现非递归删除目录

    最近在学C#的文件系统, 发现C#的文件系统貌似比java的东西少一点, 居然连删除目录都直接做好封装了, 想到学java的时候还要自己写递归删除, 好像没写过非递归的,就在网上查了下, 关于非递归删 ...

  2. Java 之递归删除目录

    Java 之递归删除目录 一.思想 必须从最里层的文件开始删除,使用递归删除. 二.源代码:RecursiveDeleteDirectory.java package cn.com.zfc.day01 ...

  3. php 递归删除目录

    /* * 递归删除目录 */ function deletedir($dir){ if($handle = @opendir($dir)){ while($file = readdir($handle ...

  4. linux下递归删除目录下所有exe文件---从删库到跑路篇

    linux下递归删除目录下所有exe文件 find . -name '*.exe' -type f -print -exec rm -rf {} \; (1) "." 表示从当前目 ...

  5. java递归删除目录下所有内容

    java递归删除目录下所有内容 private static boolean deleteDir(File dir) {if (dir.isDirectory()) {        String[] ...

  6. PHP 递归删除目录中文件

    /** * 递归删除目录中文件 * @param $pathname * @return bool */public static function delDir($pathname)//要删除的目录 ...

  7. [代码应用]javaSE程序递归删除文件夹下的.bak文件程序源代码

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39158939 本文作者:sushengmiyan ------------------ ...

  8. 一个Java递归删除目录的方法

    public static void delDir(File f) { // 判断是否是一个目录, 不是的话跳过, 直接删除; 如果是一个目录, 先将其内容清空. if(f.isDirectory() ...

  9. 使用Java语言递归删除目录下面产生的临时文件

    背景:项目copy的过程中,在项目的目录文件夹下面都产生了一个固定的文件,很是讨厌.手动删除的话比较费力,所以写了一个简单的Java程序去删除: public static void main(Str ...

随机推荐

  1. 【jquery插件】收藏

    http://www.oschina.net/project/tag/356/jquery-file-upload

  2. wancms从apache迁移至nginx

    首先解决nginx1.2不支持pathinfo问题,见上一篇博文 其次是数据库的用户名变了之后,修改各种配置,wancms的,ucenter的,bbs的 还有一个是wacms的后台站点管理里面的uc配 ...

  3. 操作数据(insert、update、delete)

    插入数据 使用Insert Into 插入 if(exists(select * from sys.databases where name = 'webDB')) drop database web ...

  4. EXTJS 4.2 资料 控件之Window窗体相关属性的用法

    最大化,最小化,是否显示关闭按钮 var win_CommonPicLibMultiple = Ext.create("Ext.window.Window", { title: & ...

  5. Head First设计模式悟道

    暂时包括 策略模式,观察者,装饰模式,工厂模式,抽象工厂模式,后续会继续补充中,纯属个人总结用,不喜勿喷, 源代码见: 传送门 public class NYPizzaIngredientFactor ...

  6. custom activities

    Useful Sharepoint Designer Custom Workflow Activities http://spdactivities.codeplex.com/ http://stac ...

  7. iOS基本网络请求

    常见的网络请求有同步GET, 同步POST, 异步GET, 异步POST. GET请求和POST请求的区别: 1. GET请求的接口会包含参数部分,参数会作为网址的一部分,服务器地址与参数之间通过 ? ...

  8. Spring 注解 @Resource和@Autowired(转)

    鸣谢:http://my.oschina.net/u/216467/blog/205951 @Resource和@Autowired两者都是做bean的注入使用. 其实@Resource并不是Spri ...

  9. 解决Oracle ORA-00984: column not allowed here

    某列是字符列,结果忘记加单引号了 INSERT INTO prt_document_present (company_code, doc_no, seq_no, field_name, desc_ms ...

  10. TDD 实践过程

    聚合根是唯一能够允许充当进入聚合的逻辑途径的实体. 是唯一能够允许聚合外的对象持有的引用成员. 聚合根--决定数据库的入口,以为: