2014-03-06 71 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管理员,并且想要将其部署到企业内部局域网中,这可能是可行的(尽管不可取)。如果你在一些通用的,面向公众的网站上这样做,这似乎是不可能的。

相关问题