標籤:
用C#Winform寫個簡單的批量清空檔案內容和刪除檔案的小工具
本文介紹這個簡單得不能再簡單的小項目。做這個項目,有以下目的。
1 |
當然是做個能用的工具 |
2 |
學習使用Github |
關於用VS2013建立一個項目並添加到Github的教程,請參考(http://www.admin10000.com/document/4004.html)。簡單來說,就是先用VS建立項目;然後在Github網站上建立一個Respo(本項目的代碼託管項目),記下(https://*.git)那個地址;最後用"提交""同步"這些按鈕來同步代碼到伺服器。
這個小工具我命名為FileWiper,其Github地址為(https://github.com/bitzhuwei/FileWiper.git),歡迎大家來討論。
使用Github
有一個倉庫,叫Repo A。你如果要往裡貢獻代碼,首先要Fork這個Repo,於是在你的Github帳號下有了一個Repo A2,。然後你在這個A2下工作,Commit,push等。然後你希望原始倉庫Repo A合并你的工作,你可以在Github上發起一個Pull Request,意思是請求Repo A的所有者從你的A2合并分支。如果被審核通過並正式合并,這樣你就為項目A做貢獻了
清空檔案內容
只需開啟檔案,將原來的內容覆蓋掉即可。
public static void WipeFileContent(string filename) { using (var stream = new System.IO.StreamWriter(filename, false)) { stream.Write("http://bitzhuwei.cnblogs.com"); } } |
註冊到系統右鍵菜單
用RegistryKey進行註冊。
程式路徑後面跟了個" %1",這樣在啟動時,在Main函數裡的args參數就會包含選定的檔案路徑(或檔案夾路徑)。
1 private void btnRegister_Click(object sender, EventArgs e) 2 { 3 //給所有類型的檔案添加自訂的右鍵菜單 4 { 5 var itemName = "Wipe Content"; 6 var associatedProgramFullPath = this.GetType().Assembly.Location; 7 //建立項:shell 8 RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"*\shell", true); 9 if (shellKey == null)10 {11 shellKey = Registry.ClassesRoot.CreateSubKey(@"*\shell");12 }13 14 //建立項:右鍵顯示的菜單名稱15 RegistryKey rightCommondKey = shellKey.CreateSubKey(itemName);16 RegistryKey associatedProgramKey = rightCommondKey.CreateSubKey("command");17 18 //建立預設值:關聯的程式19 associatedProgramKey.SetValue(string.Empty, associatedProgramFullPath + " %1");20 21 //重新整理到磁碟並釋放資源22 associatedProgramKey.Close();23 rightCommondKey.Close();24 shellKey.Close();25 }26 27 //給所有檔案夾添加自訂的右鍵菜單28 {29 var itemName = "Wipe Directory";30 var associatedProgramFullPath = this.GetType().Assembly.Location;31 //建立項:shell 32 RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"directory\shell", true);33 if (shellKey == null)34 {35 shellKey = Registry.ClassesRoot.CreateSubKey(@"*\shell");36 }37 38 //建立項:右鍵顯示的菜單名稱39 RegistryKey rightCommondKey = shellKey.CreateSubKey(itemName);40 RegistryKey associatedProgramKey = rightCommondKey.CreateSubKey("command");41 42 //建立預設值:關聯的程式43 associatedProgramKey.SetValue("", associatedProgramFullPath +" %1");44 45 46 //重新整理到磁碟並釋放資源47 associatedProgramKey.Close();48 rightCommondKey.Close();49 shellKey.Close();50 }51 }
註冊到系統右鍵菜單
取消註冊系統右鍵菜單
仍然用RegistryKey實現。
1 private void btnUnregister_Click(object sender, EventArgs e) 2 { 3 //給所有類型的檔案刪除自訂的右鍵菜單 4 { 5 var itemName = "Wipe Content"; 6 var associatedProgramFullPath = this.GetType().Assembly.Location; 7 //建立項:shell 8 RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"*\shell", true); 9 if(shellKey!=null)10 {11 shellKey.DeleteSubKeyTree(itemName, false);12 }13 14 //重新整理到磁碟並釋放資源15 shellKey.Close();16 }17 18 //給所有檔案夾刪除自訂的右鍵菜單19 {20 var itemName = "Wipe Directory";21 var associatedProgramFullPath = this.GetType().Assembly.Location;22 //建立項:shell 23 RegistryKey shellKey = Registry.ClassesRoot.OpenSubKey(@"directory\shell", true);24 if (shellKey != null)25 {26 shellKey.DeleteSubKeyTree(itemName, false);27 }28 29 //重新整理到磁碟並釋放資源30 shellKey.Close();31 }32 }
取消註冊系統右鍵菜單
歡迎大家到本項目的github上關注(https://github.com/bitzhuwei/FileWiper.git)!
用C#Winform寫個簡單的批量清空檔案內容和刪除檔案的小工具