如何批量清理系统临时文件(语言: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加入动态flash文件的生成的支持
Oct 09 PHP
PHP新手上路(四)
Oct 09 PHP
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
php smarty的预保留变量总结
Dec 04 PHP
两个开源的Php输出Excel文件类
Feb 08 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
php判断是否为json格式的方法
Mar 04 PHP
php实现Mongodb自定义方式生成自增ID的方法
Mar 23 PHP
php获取网页里所有图片并存入数组的方法
Apr 06 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 PHP
php使用gearman进行任务分发操作实例详解
Feb 26 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中处理模拟rewrite 效果
2006/12/09 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
php使用session二维数组实例
2014/11/06 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
JS重载实现方法分析
2016/12/16 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
vue实现简单跑马灯效果
2020/05/25 Javascript
tensorflow实现逻辑回归模型
2018/09/08 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
交通事故私了协议书
2014/04/16 职场文书
教师求职信
2014/06/17 职场文书
党员三严三实心得体会
2014/10/13 职场文书
2014年稽查工作总结
2014/12/20 职场文书
出国留学英文自荐信
2015/03/25 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android