目錄
对照实验(1)-批量清理系统临时文件,对照实验清理
首頁 php教程 php手册 对照实验(1)-批量清理系统临时文件,对照实验清理

对照实验(1)-批量清理系统临时文件,对照实验清理

Jun 13, 2016 am 08:46 AM

对照实验(1)-批量清理系统临时文件,对照实验清理

语言之争由来已久,下面做一些IO实验(遍历9G多的文件,批量删除),尽量用事实来比较谁优谁劣。操作系统:win7 64 位,文件包大小:9.68G。

一、语言:C#

开发环境:vs 2013

代码总行数:43行

耗时:7秒

代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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++

开发环境:vs 2013

代码总行数:50行

耗时:36秒

代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

#include <iostream><span>

#include </span><<span>string</span>><span>

#include </span><Windows.h><span>

#include </span><boost\filesystem\operations.hpp><span>

#include </span><boost\filesystem\path.hpp><span>

#include </span><boost\filesystem\convenience.hpp><span>

#include </span><boost\algorithm\<span>string</span>.hpp>

<span>using</span> <span>namespace</span><span> std;

 

</span><span>int</span> main(<span>int</span> argc, <span>char</span> *<span> argv[])

{

    </span><span>//</span><span> 输入目录 e:\tmp</span>

    <span>string</span><span> strPath;

    cout </span><< <span>"</span><span>输入要清理的目录:</span><span>"</span> <<<span> endl;

    getline(cin, strPath);

    </span><span>//</span><span> 开始计时    </span>

    SYSTEMTIME sys_time;        <span>//</span><span>声明变量</span>

    GetLocalTime(&sys_time);    <span>//</span><span>将变量值设置为本地时间</span>

    printf(<span>"</span><span>开始计时:%02d:%02d:%02d\n</span><span>"</span><span>, sys_time.wHour,sys_time.wMinute,sys_time.wSecond);

    </span><span>//</span><span> 先遍历匹配查找再循环删除</span>

    <span>namespace</span> fs =<span> boost::filesystem;

    fs::path full_path(fs::initial_path());

    full_path </span>=<span> fs::system_complete(fs::path(strPath, fs::native));

    </span><span>if</span><span> (fs::exists(full_path))

    {

        cout </span><< <span>"</span><span>正在删除</span><span>"</span><span> ;

        fs::directory_iterator item_begin(full_path);

        fs::directory_iterator item_end;

        </span><span>for</span> (; item_begin != item_end; item_begin++<span>)

        {

            </span><span>if</span> (!fs::is_directory(*<span>item_begin))

            {

                </span><span>if</span> (fs::exists(item_begin->path()) && boost::contains(item_begin->path().<span>string</span>(), <span>"</span><span>cachegrind.out</span><span>"</span><span>))

                {

                    fs::remove(item_begin</span>-><span>path());

                }

            }

        }

        cout </span><< <span>""</span> <<<span> endl;

    }

    </span><span>else</span><span>

    {

        cout </span><< <span>"</span><span>该目录不存在!</span><span>"</span> <<<span> endl;

    }

    </span><span>//</span><span> 计时结束</span>

    GetLocalTime(&<span>sys_time);

    printf(</span><span>"</span><span>计时结束:%02d:%02d:%02d\n</span><span>"</span><span>, sys_time.wHour, sys_time.wMinute, sys_time.wSecond);

    system(</span><span>"</span><span>pause</span><span>"</span><span>);

    </span><span>return</span> <span>0</span><span>;

}</span>

登入後複製

运行效果图:

三、语言:PHP

开发环境:Phpstorm

代码总行数:32行

耗时:13秒

代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<?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/>';

登入後複製

运行效果图:

四、语言:Java

开发环境:eclipse

代码总行数:43行

耗时:10秒

代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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));

    }

 

}

登入後複製

运行效果图:

五、语言:Python 3.3.5

开发环境:IDLE

代码总行数:20行

耗时:10秒

代码:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# -*- 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'));

登入後複製

运行效果图:

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1277
29
C# 教程
1257
24