国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

清理0字節文件和文件夾

2019-11-17 02:49:56
字體:
來源:轉載
供稿:網友

清理0字節文件和文件夾

  最近突然感覺到個人的開發機各種慢,也是啊,從我上大學時起至今,這臺老古董跟了我七年多了,還好每年我會親手給它做一兩次的清理和養護,所以它現在依然可以玩命的為我工作。如果我沒記錯,距離我上一次做系統有兩年多了,查看了一下磁盤的情況,window 2003系統 ,系統盤占了45G(滿50G,這個里面還包括4G的虛擬內存),其他硬盤上也堆積了各種文件夾和文件,o(︶︿︶)o 唉,刪了吧,不舍得,要么是自己做的,要么是辛苦弄來的;不刪吧,那就是一堆雜亂無章的垃圾。要怎么辦?

  給自己先立下這么個規矩

1.文件夾深度不能超過5

2.不保留0字節文件和文件夾

3.執行磁盤碎片整理(文件壓縮也是把散碎文重組的一個好方式,然后再解壓縮,不懂的就當我是在胡咧咧吧)

究竟這幾步應該如何快速做到呢?


1.文件夾深度不能超過5

cmd 命令有一個 tree , 儂曉得伐?

C:/Users/Administrator>tree "D:/Moontest/Moontest/刪除0大小文件和空文件夾" /f文件夾 PATH 列表卷序列號為 A043-7C6DD:/MOONTEST/MOONTEST/刪除0大小文件和空文件夾│  PRogram.cs│  刪除0大小文件和空文件夾.csproj│├─bin│  ├─Debug│  │      刪除0大小文件和空文件夾.exe│  │      刪除0大小文件和空文件夾.pdb│  │      刪除0大小文件和空文件夾.vshost.exe│  │      刪除0大小文件和空文件夾.vshost.exe.manifest│  ││  └─Release├─Controls│      MyButton.cs│├─obj│  └─x86│      └─Debug│          │  1111.csproj.FileListAbsolute.txt│          │  2048.csproj.FileListAbsolute.txt│          │  DesignTimeResolveAssemblyReferences.cache│          │  DesignTimeResolveAssemblyReferencesInput.cache│          │  GenerateResource.read.1.tlog│          │  GenerateResource.write.1.tlog│          │  ResolveAssemblyReference.cache│          │  刪除0大小文件和空文件夾.csproj.FileListAbsolute.txt│          │  刪除0大小文件和空文件夾.exe│          │  刪除0大小文件和空文件夾.Properties.Resources.resources│          ││          └─TempPE│                  Properties.Resources.Designer.cs.dll│└─Properties        AssemblyInfo.cs        Resources.Designer.cs        Resources.resx        Settings.Designer.cs        Settings.settingsC:/Users/Administrator>

這個層次分明了,如果實在太多,可以輸入在命令后加上>> d:/result.txt 即是

tree "D:/Moontest/Moontest/刪除0大小文件和空文件夾" /f>> d:/result.txt

這種方式把結果導出到一個文件中查看。如果深度太大的,可以手動處理下,這個盡量不要寫代碼自動化處理,畢竟你不能把你的思維寫到計算機里面,文件或刪或合并或移位,還是人工的好點,當然我說的是對自己有價值有感情的東西,畢竟某些東西視同己出。


2.不保留0字節文件和文件夾

  這個不管我們采用什么樣的系統清理工具,清理工具考慮系統穩定性,一般不會刪除不在“花名冊”中的0字符文件和文件夾。這樣就可能導致我們曾經在安裝刪除時,系統中保留了大量的卸載后余下的垃圾文件(0字符文件和文件夾),久而久之,看到一堆堆我不認識的東西,心里特別不爽,看到一個,干掉一個;但是這種方式也太慢了。要怎么辦呢?自己寫個清理方法吧,呵呵。

  我自己提供一下刪除0字符文件和文件夾的小代碼,比較簡單,不解釋代碼了,分成三段,根據喜好索取,我個人偏好Class2

using System;using System.Collections.Generic;using System.IO;namespace 刪除0大小文件和空文件夾{    class Program    {        /*            Class1 和 Class2 的形式是一樣的,只是刪除方式不一樣            Class2 和 Class3 的刪除方式是一樣的,只是形式不一樣            Class1 先檢索出所有文件夾,從末端文件夾開始刪除0字節文件和文件夾            Class2 和 Class3 檢查一個文件夾,先刪除0字節文件,然后檢索文件夾,重復以上過程,最后從末端文件夾開始刪除文件夾         */        static void Main(string[] args)        {            AppDomain.CurrentDomain.UnhandledException += (s, e) => { File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + "error.log", DateTime.Now.ToString() + "/t" + e.ExceptionObject.ToString() + Environment.NewLine); };            Class1 c1 = new Class1(args);            Class2 c2 = new Class2(args);            Class3 c3 = new Class3(args);        }    }    public class Class1    {        public Class1(string[] args)        {            Queue<string> queue = new Queue<string>();            Stack<string> stack = new Stack<string>();            if (args.Length > 0)            {                foreach (var item in args)                {                    queue.Enqueue(item);                    stack.Push(item);                }            }            else            {                string rootPath = AppDomain.CurrentDomain.BaseDirectory;                queue.Enqueue(rootPath);                stack.Push(rootPath);            }            while (queue.Count > 0)            {                string curPath = queue.Dequeue();                string[] folders = null;                try                {                    folders = Directory.GetDirectories(curPath);                }                catch { }                if (folders != null && folders.Length > 0)                {                    foreach (var item in folders)                    {                        queue.Enqueue(item);                        stack.Push(item);                    }                }            }            while (stack.Count > 0)            {                string curPath = stack.Pop();                string[] files = null;                try                {                    files = Directory.GetFiles(curPath);                }                catch { }                int filecount = 0;                if (files != null && files.Length > 0)                {                    filecount = files.Length;                    foreach (var item in files)                    {                        FileInfo finfo = new FileInfo(item);                        if (finfo.Length <= 0)                        {                            try                            {                                finfo.Delete();                                filecount--;                                Console.WriteLine("delete file : " + finfo.FullName);                            }                            catch (Exception ex)                            {                                Console.WriteLine(ex);                            }                        }                    }                }                if (filecount == 0)                {                    try                    {                        Directory.Delete(curPath);                        Console.WriteLine("delete folder : " + curPath);                    }                    catch (Exception ex)                    {                        Console.WriteLine(ex);                    }                }            }            Console.WriteLine("清理完畢!!!");            Console.ReadKey();        }    }    public class Class2    {        public Class2(string[] args)        {            Queue<string> queue = new Queue<string>();            Stack<string> stack = new Stack<string>();            if (args.Length > 0)            {                foreach (var item in args)                {                    queue.Enqueue(item);                    stack.Push(item);                }            }            else            {                string rootPath = AppDomain.CurrentDomain.BaseDirectory;                queue.Enqueue(rootPath);                stack.Push(rootPath);            }            while (queue.Count > 0)            {                string curPath = queue.Dequeue();                string[] files = null;                try                {                    files = Directory.GetFiles(curPath);                }                catch { }                if (files != null && files.Length > 0)                {                    foreach (var item in files)                    {                        FileInfo finfo = new FileInfo(item);                        if (finfo.Length <= 0)                        {                            try                            {                                finfo.Delete();                                Console.WriteLine("delete file : " + finfo.FullName);                            }                            catch (Exception ex)                            {                                Console.WriteLine(ex);                            }                        }                    }                }                string[] folders = null;                try                {                    folders = Directory.GetDirectories(curPath);                }                catch { }                if (folders != null && folders.Length > 0)                {                    foreach (var item in folders)                    {                        queue.Enqueue(item);
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合川市| 皮山县| 八宿县| 谷城县| 闽清县| 阿鲁科尔沁旗| 攀枝花市| 保德县| 林州市| 栾川县| 哈尔滨市| 吕梁市| 崇州市| 徐闻县| 迁安市| 天长市| 泌阳县| 资中县| 五家渠市| 杭州市| 宁晋县| 海淀区| 湟中县| 奉节县| 闽侯县| 古交市| 宜阳县| 温泉县| 高台县| 磴口县| 贞丰县| 喀喇沁旗| 海林市| 永顺县| 永靖县| 嘉峪关市| 余庆县| 将乐县| 北流市| 阿拉善左旗| 福安市|