如何批量清理系统临时文件(语言: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 相关文章推荐
第三节--定义一个类
Nov 16 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
php截取字符串并保留完整xml标签的函数代码
Feb 06 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php模拟用户自动在qq空间发表文章的方法
Jan 07 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
Dec 24 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
Yii框架的路由配置方法分析
Sep 09 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
Apr 06 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邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
关于JavaScript数组你所不知道的3件事
2016/08/24 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
python中的全局变量用法分析
2015/06/09 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
python+opencv识别图片中的圆形
2020/03/25 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
python小项目之五子棋游戏
2019/12/26 Python
如何实现在jupyter notebook中播放视频(不停地展示图片)
2020/04/23 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
自动化专业本科毕业生求职信
2013/10/20 职场文书
教师专业理论水平的自我评价分享
2013/11/09 职场文书
总经理岗位职责范本
2014/02/02 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL