如何批量清理系统临时文件(语言: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 相关文章推荐
php json_encode奇怪问题说明
Sep 27 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
div li的多行多列 无刷新分页示例代码
Oct 16 PHP
php过滤敏感词的示例
Mar 31 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
Nov 22 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
php适配器模式简单应用示例
Oct 23 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 14 PHP
浅析PHP echo 和 print 语句
Jun 30 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查询域名状态whois的类
2006/11/25 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
2012/01/16 PHP
学习php分页代码实例
2013/10/24 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
JavaScript 5 新增 Array 方法实现介绍
2012/02/06 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
解决vue watch数据的方法被调用了两次的问题
2020/11/07 Javascript
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
学习python分支结构
2019/05/17 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
Vrbo英国:预订度假屋
2020/08/19 全球购物
.net笔试题
2014/03/03 面试题
班级学习雷锋活动总结
2014/07/04 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
Redis做数据持久化的解决方案及底层原理
2021/07/15 Redis
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python