2014-03-06 70 views
0

iv做了一個網絡論壇,因爲我在我的本地驅動器上有很多文件夾,現在我可以在網頁上搜索任何我想要的文件夾。從我的結果c打開窗口資源管理器文件夾#

現在我正在尋找添加一個鏈接到搜索結果,所以它直接帶我到文件夾。

我在C#代碼:

protected void List_Dirs(string searchStr = null) 
    { 
     try 
     { 
      MainContentLocal.InnerHtml = ""; 
      string[] directoryList = System.IO.Directory.GetDirectories("\\\\myfiles\\Web"); 
      int x = 0; 
      foreach (string directory in directoryList) 
      { 

       if (searchStr != null && searchStr.Length > 1) 
       { 
        UserInfo.Text = "Your Search for : <strong>" + SearchPhrase.Text + "</strong> returns "; 
        if(directoryP.ToLower().Contains(searchStr.ToLower())) 
        { 
         MainContentLocal.InnerHtml += directoryP + "<br />"; 
         x++; 
        } 
       } 
       else 
       { 
        MainContentLocal.InnerHtml += directoryP + "<br />"; 
       } 
      if (searchStr != null && searchStr.Length > 1) 
      { 
       UserInfo.Text += "<strong>" + x.ToString() + "</strong> results"; 
       UserInfo.CssClass = "userInfo"; 
      } 
     } 
     catch(Exception DirectoryListExp) 
     { 
      MainContentLocal.InnerHtml = DirectoryListExp.Message; 
     } 
    } 

當我輸入的東西是搜索,我會得到這樣一個文件夾列表:

Your Search for : project returns 2 results 
job234 project234 Awards 
job323 project game 

現在有沒有什麼辦法,我點擊的結果使我可以打開一個窗口上的網頁瀏覽

感謝

回答

0

您可以創建鏈接,如<a href="ThisScript.aspx?folder=project234">project234</a>

string folder = "\\\\myfiles\\Web"; 

if (string.IsNullOrWhiteSpace(Request["folder"])) { 
    // Folder clicked 

    folder = string.Format("{0}{1}", folder, Request["folder"]); 
    Process.Start(folder); 
} 

string[] directoryList = System.IO.Directory.GetDirectories(folder); 

然後它會在服務器上打開它。所以如果它真的是本地的,那麼它會起作用。如果沒有安全問題。但我不確定。您也可以使用file://鏈接(如Ryan Mrachek註釋),但瀏覽器並不樂意讓您打開它們。

+0

對不起,我想從我的搜索結果中出現一個窗口資源管理器文件夾,當我點擊 – al123

+0

我編輯了我的答案,看看'Process.Start(文件夾)'部分 – KoalaBear

0

如果你的結果是一個文件,你可以通過調用Process.Start("C:\\MyResults.txt")以編程方式通過Process類打開該文件。這將在默認的文本編輯器中打開結果。以同樣的方式,您也可以通過將URL傳遞給Process.Start來打開網頁。我希望這是想要的。

0

我們的文件URL格式不正確。應該是:

file:/// c:/ folder/ 請參考The Bizarre and Unhappy Story of File URLs

這個工作對我來說:

鏈接 當你點擊鏈接,一個新的Windows資源管理器窗口打開到指定位置。但正如你指出的那樣,這隻能從一個file:// URL開始。

有關發生了什麼的詳細說明可以在這裏找到。 IE6 SP1/SP2以來,基本上這種針對IE的設計行爲是唯一可以更改它的方法,就是通過使用本地計算機上的註冊表設置來明確禁用某些安全策略。

因此,如果您是IT管理員,並且想要將其部署到企業內部局域網中,這可能是可行的(儘管不可取)。如果你在一些通用的,面向公衆的網站上這樣做,這似乎是不可能的。

相關問題