public FileExplorer(NameObjectCollection fileFunctionMap) { m_fileFunctionMap = fileFunctionMap; _quit = false; m_DNV = Settings.Instance.DNV; m_indexer = new Indexer(Properties.Settings.Instance.TempIndexPath, IndexMode.CREATE); }
private string DoSearchResult() { string strSearchTerm = m_queryString["search"]; string strStartAt = m_queryString["page"]; int iStartAt = 0; if (strStartAt != null) { try { iStartAt = Int32.Parse(strStartAt) * 10; } catch { } } // Lock the index before starting search. This is to prevent FileExplorer from // moving/deleting index while a search operation is in progress Synchronizer.Instance.LockIndex(this); Indexer m_indexer = new Indexer(OpenDesktop.Properties.Settings.Instance.IndexPath, IndexMode.SEARCH); string strReturnVal = string.Empty; SearchInfo[] sinfo = m_indexer.Search(strSearchTerm); if (sinfo != null && sinfo.Length > 0) { StringBuilder sb = new StringBuilder(); int iEndAt = iStartAt + 10; if (iEndAt > sinfo.Length) { iEndAt = sinfo.Length; } // Display: Results 0 - 10 of about 44 for killing+work sb.Append("<div class=\"search-nav\">" + string.Format(Properties.Resources.SearchResultsHeader, (iStartAt + 1).ToString(), iEndAt.ToString(), sinfo.Length.ToString(), strSearchTerm) + "</div>"); sb.Append("<div class=\"search-results\"><ol>"); for (int i = iStartAt; i < iEndAt; i++) { string strDisplayText = GetExcerpt(sinfo[i].Text, strSearchTerm); sb.Append("<li value=\"" + (i + 1).ToString() + "\"><a href=\"" + sinfo[i].Launcher + "\"><span style=\"font-size:12pt\">" + sinfo[i].Title + "</span></a><br />" + strDisplayText + "</li>"); } sb.Append("</ol></div>"); int iCurPageNum = (iStartAt / 10); string strPrevUrl = string.Empty; string strNextUrl = string.Empty; if (iCurPageNum > 0) { strPrevUrl = string.Format("<a href=\"search.html?search={0}&page={1}\">", m_queryString["search"], (iCurPageNum - 1).ToString()) + Properties.Resources.SearchResultsPrev + "</a>"; } if (iEndAt != sinfo.Length) { strNextUrl = string.Format("<a href=\"search.html?search={0}&page={1}\">", m_queryString["search"], (iCurPageNum + 1).ToString()) + Properties.Resources.SearchResultsNext + "</a>"; } sb.Append("<div class=\"search-nav\">" + strPrevUrl + " | " + strNextUrl + "</div>"); strReturnVal = sb.ToString(); } else { strReturnVal = "<div class=\"no-search-results\">" + Properties.Resources.NoSearchResults + "</div>"; } m_indexer.Close(); Synchronizer.Instance.ReleaseIndex(this); return(strReturnVal); }
private void Explore() { string [] strDriveList = Environment.GetLogicalDrives(); foreach (string strDrive in strDriveList) { DriveInfo info = new DriveInfo(strDrive); if (info.IsReady) { Logger.Instance.LogDebug("Exploring " + strDrive); Explore(strDrive); break; //FIXME: REMOVE THIS. IT IS TEMP FOR DEBUGGING ONLY } } if (!_quit) // If the exit was natural { Logger.Instance.LogDebug("Moving index from " + Properties.Settings.Instance.IndexPath + " to " + Properties.Settings.Instance.TempIndexPath); // Close index and move it m_indexer.Close(); m_indexer = null; // Lock the index as we are going to be moving it Synchronizer.Instance.LockIndex(this); try { if (Directory.Exists(Properties.Settings.Instance.IndexPath)) { Directory.Delete(Properties.Settings.Instance.IndexPath, true); } Directory.Move(Properties.Settings.Instance.TempIndexPath, Properties.Settings.Instance.IndexPath); Properties.Settings.Instance.IndexLastUpdated = DateTime.Now; Properties.Settings.Instance.Save(); } catch (Exception e) { Logger.Instance.LogException(e); } Synchronizer.Instance.ReleaseIndex(this); } OnFileExplorerDone(); // Signal we are done }
private string DoSearchResult() { string strSearchTerm = m_queryString["search"]; string strStartAt = m_queryString["page"]; int iStartAt = 0; if (strStartAt != null) { try { iStartAt = Int32.Parse(strStartAt) * 10; } catch { } } // Lock the index before starting search. This is to prevent FileExplorer from // moving/deleting index while a search operation is in progress Synchronizer.Instance.LockIndex(this); Indexer m_indexer = new Indexer(OpenDesktop.Properties.Settings.Instance.IndexPath, IndexMode.SEARCH); string strReturnVal = string.Empty; SearchInfo[] sinfo = m_indexer.Search(strSearchTerm); if (sinfo != null && sinfo.Length > 0) { StringBuilder sb = new StringBuilder(); int iEndAt = iStartAt + 10; if (iEndAt > sinfo.Length) { iEndAt = sinfo.Length; } // Display: Results 0 - 10 of about 44 for killing+work sb.Append("<div class=\"search-nav\">" + string.Format(Properties.Resources.SearchResultsHeader, (iStartAt + 1).ToString(), iEndAt.ToString(), sinfo.Length.ToString(), strSearchTerm) + "</div>"); sb.Append("<div class=\"search-results\"><ol>"); for (int i = iStartAt; i < iEndAt; i++) { string strDisplayText = GetExcerpt(sinfo[i].Text, strSearchTerm); sb.Append("<li value=\"" + (i+1).ToString() + "\"><a href=\"" + sinfo[i].Launcher + "\"><span style=\"font-size:12pt\">" + sinfo[i].Title + "</span></a><br />" + strDisplayText + "</li>"); } sb.Append("</ol></div>"); int iCurPageNum = (iStartAt/10); string strPrevUrl = string.Empty; string strNextUrl = string.Empty; if (iCurPageNum > 0) { strPrevUrl = string.Format("<a href=\"search.html?search={0}&page={1}\">", m_queryString["search"], (iCurPageNum - 1).ToString()) + Properties.Resources.SearchResultsPrev + "</a>"; } if (iEndAt != sinfo.Length) { strNextUrl = string.Format("<a href=\"search.html?search={0}&page={1}\">", m_queryString["search"], (iCurPageNum + 1).ToString()) + Properties.Resources.SearchResultsNext + "</a>"; } sb.Append("<div class=\"search-nav\">" + strPrevUrl + " | " + strNextUrl + "</div>"); strReturnVal = sb.ToString(); } else { strReturnVal = "<div class=\"no-search-results\">" + Properties.Resources.NoSearchResults + "</div>"; } m_indexer.Close(); Synchronizer.Instance.ReleaseIndex(this); return strReturnVal; }