2015-11-07 98 views
0

用20,000行代碼創建一個程序。 我從完成到發佈的唯一問題是 我試圖讓一切以擴展名結尾.DLL將在文件夾中被刪除。 或者當它在 中檢測到可執行文件中的.DLL EXTENSION時,阻止應用程序打開。刪除所有的dll擴展名

現在我有沒有工作代碼:

private void Form1_Load(object sender, EventArgs e) 
{ 
    string curFile = "FILENAME.dll"; 
    if (File.Exists(curFile)) 
    { 
     this.Close(); 
    } 
} 

我有與該代碼唯一的問題是文件名。任何人都可以將文件名重命名爲除此之外的特定名稱,並仍然使用修改後的庫來檢查我的代碼 這也適用,因爲我不需要指定它爲我執行的路徑或目錄的位置。 我需要幾乎停止任何類型的那些特定的擴展名與該可執行文件位於相同的路徑,而不是看到名稱「FILENAME.DLL」只是「.DLL」。

回答

0

爲了得到某些目錄中的所有DLL使用Directory.EnumerateFiles方法:

可以使用Directory.GetCurrentDirectory當前的應用程序目錄。

private void Form1_Load(object sender, EventArgs e) 
{ 
    var allDlls = Directory.EnumerateFiles(Directory.GetCurrentDirectory(), "*.dll"); 
    if (allDlls.Any()) 
    { 
     this.Close(); 
    } 
} 
+0

這不會是我要找的。 (「path_to_some_directory」,「* .dll」); 由於其他人沒有相同的指定路徑而無法工作。這正在發佈 –

+0

@CrazyLeak'Directory.GetCurrentDirectory'? – Backs

+0

沒有這不工作,如果我做var allDlls = Directory.EnumerateFiles(Directory.GetCurrentDirectory,「* .dll」); 或 var allDlls = Directory.GetCurrentDirectory(「path_to_some_directory」,「* .dll」); 我得到一個錯誤的語法 –