<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      打賞

      一、常規方法

      給定一個文件路徑,打開文件夾并定位到文件,通常所用shell命令為:explorer.exe /select,filepath。

      c#以進程啟動之為:

      if (File.Exists(fileName))
      {
          Process.Start("explorer", "/select,\"" + fileName + "\"");
      }

       

      此命令對于一般文件名是適用的,是最為簡便的方法。

      但項目中碰到特殊文件名,explorer.exe就不認了,它找不到,它默認跳到我的文檔目錄。

      比如下列文件名:

      它在c#代碼中,unicode字符實為:

      而在命令行窗口中,以explorer /select,執行之,則又如下:

      結果它自然是找不到的,所以它打開了我的文檔目錄。

       

      二、SHOpenFolderAndSelectItems API

      萬能的stackoverflow!

      這個純粹技術的網站,從上受益良多。曾在上面扯過淡,立馬被警告,從此收斂正容。

      蛛絲螞跡,找到了SHOpenFolderAndSelectItems這個API,解決問題:

          /// <summary>
          /// 打開路徑并定位文件...對于@"h:\Bleacher Report - Hardaway with the safe call ??.mp4"這樣的,explorer.exe /select,d:xxx不認,用API整它
          /// </summary>
          /// <param name="filePath">文件絕對路徑</param>
          [DllImport("shell32.dll", ExactSpelling = true)]
          private static extern void ILFree(IntPtr pidlList);
      
          [DllImport("shell32.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
          private static extern IntPtr ILCreateFromPathW(string pszPath);
      
          [DllImport("shell32.dll", ExactSpelling = true)]
          private static extern int SHOpenFolderAndSelectItems(IntPtr pidlList, uint cild, IntPtr children, uint dwFlags);
      
          public static void ExplorerFile(string filePath)
          {
              if (!File.Exists(filePath) && !Directory.Exists(filePath))
                  return;
      
              if (Directory.Exists(filePath))
                  Process.Start(@"explorer.exe", "/select,\"" + filePath + "\"");
              else
              {
                  IntPtr pidlList = ILCreateFromPathW(filePath);
                  if (pidlList != IntPtr.Zero)
                  {
                      try
                      {
                          Marshal.ThrowExceptionForHR(SHOpenFolderAndSelectItems(pidlList, 0, IntPtr.Zero, 0));
                      }
                      finally
                      {
                          ILFree(pidlList);
                      }
                  }
              }
          }

      試用一下:

      非常完美。而且如果其目錄已打開,它會已打開的目錄中選擇而不會新開文件夾,更人性化。

      posted on 2018-02-03 11:26  楚人無衣  閱讀(6769)  評論(1)    收藏  舉報

      主站蜘蛛池模板: 欧美人人妻人人澡人人尤物| 色狠狠色噜噜AV一区| 免费无码一区无码东京热| 四虎永久免费精品视频| 免费国产拍久久受拍久久| 中国帅小伙gaysextubevideo| 国产高清无遮挡内容丰富| 日本亚洲欧洲无免费码在线| caoporn免费视频公开| 国产精品ⅴ无码大片在线看| 99久久精品国产熟女拳交 | 极品少妇的粉嫩小泬看片| 应城市| 97视频精品全国免费观看| 丰满少妇高潮无套内谢| 国产综合久久99久久| 国产亚洲精品久久久久久久软件| 日韩蜜桃AV无码中文字幕不卡高清一区二区| 国产99视频精品免费视频6| 久久人人爽人人爽人人片av| 亚洲一区二区三区自拍天堂| 少妇xxxxx性开放| h无码精品3d动漫在线观看| 亚洲码国产精品高潮在线| 无码成人一区二区三区| 青草99在线免费观看| 97人妻天天爽夜夜爽二区| 国内精品自产拍在线播放| 日本久久99成人网站| 国产成人理论在线视频观看| 美女内射无套日韩免费播放| 日本精品不卡一二三区| 日韩中文字幕v亚洲中文字幕| 九九热在线免费播放视频| 成人福利国产午夜AV免费不卡在线| a∨变态另类天堂无码专区| 欧美黑人乱大交| 精品一区二区成人精品| 国产精品午夜福利合集| 少妇精品亚洲一区二区成人| 亚洲精品一区二区三区在线观看 |