如何批量清理系统临时文件(语言: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 远程关机实现代码
Nov 10 PHP
php实现的九九乘法口诀表简洁版
Jul 28 PHP
php中多维数组按指定value排序的实现代码
Aug 19 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
Laravel框架表单验证详解
Sep 04 PHP
php有道翻译api调用方法实例
Dec 22 PHP
在Windows系统下使用PHP生成Word文档的教程
Jul 03 PHP
PHP易混淆知识整理笔记
Sep 24 PHP
培养自己的php编码规范
Sep 28 PHP
PHP命名空间namespace用法实例分析
Sep 27 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
详解PHP Swoole与TCP三次握手
May 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 中的类
2006/10/09 PHP
php开发工具之vs2005图解
2008/01/12 PHP
PHP读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
jQuery EasyUI API 中文文档 - DateBox日期框
2011/10/15 PHP
本地计算机无法启动Apache故障处理
2014/08/08 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
详解javascript设计模式三:代理模式
2019/03/25 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
python编写分类决策树的代码
2017/12/21 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
python如何对实例属性进行类型检查
2018/03/20 Python
pycharm创建一个python包方法图解
2019/04/10 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
html5与css3小应用
2013/04/03 HTML / CSS
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
电子商务应届生求职信
2013/11/16 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
毕业设计致谢词
2015/05/14 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang