如何批量清理系统临时文件(语言: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 相关文章推荐
PHP4实际应用经验篇(9)
Oct 09 PHP
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
php读取javascript设置的cookies的代码
Apr 12 PHP
php xml 入门学习资料
Jan 01 PHP
PHP防盗链代码实例
Aug 27 PHP
php将access数据库转换到mysql数据库的方法
Dec 24 PHP
ThinkPHP路由机制简介
Mar 23 PHP
一段实用的php验证码函数
May 19 PHP
php类的自动加载操作实例详解
Sep 28 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
Sep 05 PHP
PHP策略模式写法
Apr 01 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+mysql查询优化简单实例
2015/01/13 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
jquery radio 操作代码
2011/03/16 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
Javascript简单改变表单元素背景的方法
2015/07/15 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
js实现音乐播放控制条
2017/09/09 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
python daemon守护进程实现
2016/08/27 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python实现浪漫的烟花秀
2019/01/30 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
本科生详细的自我评价
2013/09/19 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python