static void doSearch(Object state) { SearchObjectState sos = (SearchObjectState)state; if (sos.SearchString == string.Empty) { sos.Reset.Set(); return; } cHelper = cManager.GetCatalog("SYSTEMINDEX").GetQueryHelper(); cHelper.QuerySelectColumns = "\"System.ItemNameDisplay\",\"System.ItemPathDisplay\""; try { using (cConnection = new OleDbConnection( cHelper.ConnectionString)) { cConnection.Open(); using (OleDbCommand cmd = new OleDbCommand( cHelper.GenerateSQLFromUserQuery( sos.SearchString ), cConnection)) { if (cConnection.State == ConnectionState.Open) { using (OleDbDataReader reader = cmd.ExecuteReader()) { m_results.Clear(); IsWorkingFlag = true; while (!reader.IsClosed && reader.Read()) { m_results.Add(new SearchResult() { Name = reader[0].ToString(), Path = reader[1].ToString() }); if (ToAbortFlag) { break; } } reader.Close(); IsWorkingFlag = false; } } } // TODO: Investigate possible RaceOnRCWCleanup exception. cConnection.Close(); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex); } sos.Reset.Set(); ToAbortFlag = false; }
static void doSearch(object state) { // check if user wants to show file extensions. always show on windows < 8 due to property missing string displayNameColumn = "System.ItemNameDisplayWithoutExtension"; RegistryKey hideFileExt = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", false); object hideFileExtValue = hideFileExt?.GetValue("HideFileExt"); if ((hideFileExtValue != null && hideFileExtValue.ToString() == "0") || !Interop.Shell.IsWindows8OrBetter) { displayNameColumn = "System.ItemNameDisplay"; } SearchObjectState sos = (SearchObjectState)state; if (sos.SearchString == string.Empty) { m_results.Clear(); sos.Reset.Set(); return; } cHelper = cManager.GetCatalog("SYSTEMINDEX").GetQueryHelper(); cHelper.QuerySelectColumns = "\"" + displayNameColumn + "\",\"System.ItemUrl\",\"System.ItemPathDisplay\",\"System.DateModified\""; cHelper.QueryMaxResults = MAX_RESULT; cHelper.QuerySorting = "System.Search.Rank desc"; OleDbConnection cConnection; try { using (cConnection = new OleDbConnection( cHelper.ConnectionString)) { cConnection.Open(); using (OleDbCommand cmd = new OleDbCommand( cHelper.GenerateSQLFromUserQuery( sos.SearchString ), cConnection)) { if (cConnection.State == ConnectionState.Open) { using (OleDbDataReader reader = cmd.ExecuteReader()) { m_results.Clear(); IsWorkingFlag = true; while (!reader.IsClosed && reader.Read()) { if (ToAbortFlag) { break; } SearchResult result = new SearchResult() { Name = reader[0].ToString(), Path = reader[1].ToString(), PathDisplay = reader[2].ToString(), DateModified = reader[3].ToString() }; if (result.Name.EndsWith(".lnk")) { result.Name = result.Name.Substring(0, result.Name.Length - 4); // Windows always hides this regardless of setting, so do it } m_results.Add(result); } IsWorkingFlag = false; } } } } } catch (Exception ex) { CairoLogger.Instance.Error("Error in doSearch.", ex); } sos.Reset.Set(); ToAbortFlag = false; }
static void doSearch(Object state) { SearchObjectState sos = (SearchObjectState)state; if (sos.SearchString == string.Empty) { m_results.Clear(); sos.Reset.Set(); return; } cHelper = cManager.GetCatalog("SYSTEMINDEX").GetQueryHelper(); cHelper.QuerySelectColumns = "\"System.ItemNameDisplay\",\"System.ItemUrl\",\"System.ItemPathDisplay\",\"System.DateModified\""; cHelper.QueryMaxResults = MAX_RESULT; cHelper.QuerySorting = "System.Search.Rank desc"; OleDbConnection cConnection; try { using (cConnection = new OleDbConnection( cHelper.ConnectionString)) { cConnection.Open(); using (OleDbCommand cmd = new OleDbCommand( cHelper.GenerateSQLFromUserQuery( sos.SearchString ), cConnection)) { if (cConnection.State == ConnectionState.Open) { using (OleDbDataReader reader = cmd.ExecuteReader()) { m_results.Clear(); IsWorkingFlag = true; while (!reader.IsClosed && reader.Read()) { if (ToAbortFlag) { break; } SearchResult result = new SearchResult() { Name = reader[0].ToString(), Path = reader[1].ToString(), PathDisplay = reader[2].ToString(), DateModified = reader[3].ToString() }; m_results.Add(result); } IsWorkingFlag = false; } } } } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex); } sos.Reset.Set(); ToAbortFlag = false; }