如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )


Posted in PHP onFebruary 01, 2016

语言之争由来已久,下面做一些IO实验(遍历9G多的文件,批量删除),尽量用事实来比较谁优谁劣。操作系统:win7 64 位,文件包大小:9.68G。

一、语言:C#

开发环境:vs 2013

代码总行数:43行

耗时:7秒

代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BatchDelete
{
class Program
{
static void Main(string[] args)
{
// 输入目录 e:\tmp
string path;
Console.WriteLine("输入要清理的目录:");
path = Console.ReadLine();
// 开始计时
Console.WriteLine("开始计时:"+DateTime.Now.ToString("HH:mm:ss"));
// 先遍历匹配查找再循环删除
if (Directory.Exists(path))
{
Console.Write("正在删除");
foreach (string fileName in Directory.GetFileSystemEntries(path))
{
if (File.Exists(fileName) && fileName.Contains("cachegrind.out"))
{
File.Delete(fileName);
}
}
Console.WriteLine("");
}
else
{
Console.WriteLine("该目录不存在!");
}
// 计时结束
Console.WriteLine("结束计时:" + DateTime.Now.ToString("HH:mm:ss"));
Console.ReadKey();
}
}
}

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

二、语言:C/C++

开发环境:vs 2013

代码总行数:50行

耗时:36秒

代码:

#include <iostream>
#include <string>
#include <Windows.h>
#include <boost\filesystem\operations.hpp>
#include <boost\filesystem\path.hpp>
#include <boost\filesystem\convenience.hpp>
#include <boost\algorithm\string.hpp>
using namespace std;
int main(int argc, char * argv[])
{
// 输入目录 e:\tmp
string strPath;
cout << "输入要清理的目录:" << endl;
getline(cin, strPath);
// 开始计时 
SYSTEMTIME sys_time; //声明变量
GetLocalTime(&sys_time); //将变量值设置为本地时间
printf("开始计时:%02d:%02d:%02d\n", sys_time.wHour,sys_time.wMinute,sys_time.wSecond);
// 先遍历匹配查找再循环删除
namespace fs = boost::filesystem;
fs::path full_path(fs::initial_path());
full_path = fs::system_complete(fs::path(strPath, fs::native));
if (fs::exists(full_path))
{
cout << "正在删除" ;
fs::directory_iterator item_begin(full_path);
fs::directory_iterator item_end;
for (; item_begin != item_end; item_begin++)
{
if (!fs::is_directory(*item_begin))
{
if (fs::exists(item_begin->path()) && boost::contains(item_begin->path().string(), "cachegrind.out"))
{
fs::remove(item_begin->path());
}
}
}
cout << "" << endl;
}
else
{
cout << "该目录不存在!" << endl;
}
// 计时结束
GetLocalTime(&sys_time);
printf("计时结束:%02d:%02d:%02d\n", sys_time.wHour, sys_time.wMinute, sys_time.wSecond);
system("pause");
return 0;
}

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

三、语言:PHP

开发环境:Phpstorm

代码总行数:32行

耗时:13秒

代码:

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 16-1-29
* Time: 上午9:31
*/
date_default_timezone_set('prc');
//输入目录 e:\tmp
$path = 'e:\tmp';
//开始计时
echo date("H:i:s",time()) . '<br/>';
//先遍历匹配查找再循环删除
if(is_dir($path))
{
echo "正在删除";
$mydir = dir($path);
while($file = $mydir->read())
{
if(file_exists("$path/$file") && strpos($file, 'cachegrind.out') === 0)
{
unlink("$path/$file");
}
}
echo '<br/>';
}
else
{
echo "该目录不存在!" . '<br/>';
}
//计时结束
echo date("H:i:s",time()) . '<br/>';

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

四、语言:Java

开发环境:eclipse

代码总行数:43行

耗时:10秒

代码:

package com.yejing;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
// 输入目录 e:\tmp
String path = null;
System.out.println("输入要清理的目录:");
path = s.next();
// 开始计时
Date nowTime=new Date(); 
SimpleDateFormat time=new SimpleDateFormat("HH:mm:ss"); 
System.out.println("开始计时:"+ time.format(nowTime)); 
// 先遍历匹配查找再循环删除
File dir = new File(path);
if(dir.exists()){
System.out.print("正在删除");
File[] fs = dir.listFiles();
for(int i=0;i<fs.length;i++){
if(!fs[i].isDirectory()){
if(fs[i].isFile() && fs[i].exists() && fs[i].getName().contains("cachegrind.out"))
{
fs[i].delete(); 
}
}
}
System.out.println("");
}else{
System.out.println("该目录不存在!");
}
// 计时结束
nowTime=new Date(); 
System.out.println("开始计时:"+ time.format(nowTime)); 
}
}

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

五、语言:Python 3.3.5

开发环境:IDLE

代码总行数:20行

耗时:10秒

代码:

# -*- coding: utf-8 -*- 
import datetime
import os
# 输入目录 e:\tmp
path = input("输入要清理的目录:\n");
# 开始计时
print("开始计时:",datetime.datetime.now().strftime('%H:%M:%S'));
# 先遍历匹配查找再循环删除
if(os.path.exists(path)):
print("正在删除");
for parent,dirnames,filenames in os.walk(path):
for filename in filenames:
targetFile = os.path.join(parent,filename)
if (os.path.isfile(targetFile) and "cachegrind.out" in targetFile):
os.remove(targetFile)

else:

print("该目录不存在!");
# 计时结束
print("结束计时:",datetime.datetime.now().strftime('%H:%M:%S'));

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

PHP 相关文章推荐
如何提高MYSQL数据库的查询统计速度 select 索引应用
Apr 11 PHP
php下删除字符串中HTML标签的函数
Aug 27 PHP
php导入csv文件碰到乱码问题的解决方法
Feb 10 PHP
PHP 快速排序算法详解
Nov 10 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
Yii2 输出xml格式数据的方法
May 03 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
Aug 17 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
php加密之discuz内容经典加密方式实例详解
Feb 04 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP自带方法验证邮箱是否存在
Feb 01 #PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 #PHP
实例详解PHP中html word 互转的方法
Jan 28 #PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 #PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 #PHP
PHP文件上传之多文件上传的实现思路
Jan 27 #PHP
PHP内核学习教程之php opcode内核实现
Jan 27 #PHP
You might like
PHP中文汉字验证码
2007/04/08 PHP
测试您的 PHP 水平的题目
2007/05/30 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
2017/05/12 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
2017/10/31 Javascript
js实现简单模态框实例
2018/11/16 Javascript
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
Python编写屏幕截图程序方法
2015/02/18 Python
Python抓取百度查询结果的方法
2015/07/08 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
Python线程之定位与销毁的实现
2019/02/17 Python
django的ORM模型的实现原理
2019/03/04 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
解决python 上传图片限制格式问题
2019/10/30 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
美国在线旅行社:Crystal Travel
2018/09/11 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
学校大课间活动方案
2014/01/30 职场文书
实习老师离校感言
2014/02/03 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
校园开放日新闻稿
2015/07/17 职场文书
DE1107机评
2022/04/05 无线电