欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

程序员文章站 2023-11-22 14:52:22
语言之争由来已久,下面做一些io实验(遍历9g多的文件,批量删除),尽量用事实来比较谁优谁劣。操作系统:win7 64 位,文件包大小:9.68g。 一、语言:c#...

语言之争由来已久,下面做一些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 )