អាយធីខ្មែរស៊ែរ : itkhmershare.blogspot.com

SearchMyFiles v2.35 - Alternative to 'Search For Files And Folders' module of Windows + Duplicates Search

Wednesday, January 30, 20130 comments

Description

SearchMyFiles is an alternative to the standard "Search For Files And Folders" module of Windows. It allows you to easily search files in your system by wildcard, by last modified/created/last accessed time, by file attributes, by file content (text or binary search), and by the file size. SearchMyFiles allows you to make a very accurate search that cannot be done with Windows search. For Example: You can search all files created in the last 10 minutes with size between 500 and 700 bytes.
After you made a search, you can select one or more files, and save the list into text/html/csv/xml file, or copy the list to the clipboard. SearchMyFiles is portable, and you can use it from a USB flash drive without leaving traces in the Registry of the scanned computer.

System Requirements

This utility works on any version of Windows starting from Windows 2000 and up to Windows 7.


Known Problems

  • When you filter files or folders by using a wildcard (e.g 2*.*), the search is also made on the short filenames (8.3 file format) and thus some irrelevant files may appear in the search result. This problem is caused by the API of Windows, which also make the wildcard search on the short filenames.
    In future versions, I plan to create my own wildcard parser in order to solve this issue.

Future Versions

The following features might be added in future versions, according to user requests and my own ideas:
  • Add Explorer-like context-menu that will allow to do some actions on the files appeared in the search result.
  • Fix the folder wildcard feature to work like most users expect.
  • Add 'Aggregate Reports' option - Instead of displaying all found files, display only summary of found files - count, total size, average file size, and so on.
  • Search files by alternate stream data.
  • Search the content of files by regular expressions.
  • An option to search file names by regular expression, as alternative for wildcard search.

Using SearchMyFiles

SearchMyFiles doesn't require any installation process or additional DLL files. In order to start using it, simply run the executable file - SearchMyFiles.exe
After running it, the 'Search Options' dialog-box is displayed. Select the base folders or drives that you want to search, the wildcard, and other search option that you need. After choosing the right search option, click 'Ok' in order to start the search. While in search process, the found files will be displayed in the main window. If you want to stop the search, you can simply click the 'Stop' menu. After the search is finished, you can select one or more files, and then save the list into text/csv/html/xml file by using the 'Save Selected Items' option. You can also select a single file and open it with the default program by using the 'Open Selected File' option.

Search Options

Here's a small explanation about all available search options:
  • Base Folder: Specifies the folder that you want to scan. if 'Scan Subfolders' option is also checked, all subfolders under this folder will also be scanned. You can also specift multiple folders, delimited by semicolon. For example: c:\temp;d:\myfolder;d:\nirsoft
  • Excluded Folders: Allows you to specify one or more folders (delimited by semicolon) that you want to exclude from the scan. For example: If you want to scan you entire C: drive, but without C:\Windows and C:\Documents and Settings, you should type 'C:\' in the Base Folder, and 'C:\Windows;C:\Documents and Settings' in the Excluded Folders field.
  • Files Wildcard: Specifies the wildcard for scanning the files. You can specify multiple wildcards delimited by semicolon or by comma, for example: *.exe;*.dll;*.ocx or *.exe,*.dll,*.ocx. Be aware that if you want to search a filename containing semicolon or comma, you must put it in quotes. For example: "Hello, World.txt". If you don't put it in quotes, SearchMyFiles will consider it as 2 separated files.
  • Subfolders Wildcard: Specifies the wildcard for scanning the subfolders. For example, If you want to only scan the subfolders beginning with 'a' letter, you can specify a*.* in this field.
  • Exclude Extensions: Specifies one or more file extensions to exclude from the search. You can specify multiple extensions delimited by semicolon, by comma, or by space character, for example: exe dll ocx
  • File Contains: Allows you to search by the content of the files. You can make a text search or binary search. On binary search, you should specify the binary sequence that you want to search in Hex dump format, for example: 'A2 C5 2F 8A 9E AC'.
  • Search multiple values (comma delimited): When this option is selected, you can specify multiple values to search in the 'File Contains' field. The multiple values are delimited by comma, and optionally also with quotes.
    For example:
    NirSoft, Nir Sofer, Search, 123, "abc,123"
    A1 82 A7 AC, 27 9A CC FF, A1 B2 71 22
  • File Size: Specifies that you want to search files in specified size range (For example: search all files with size between 238 and 741 bytes).
  • Attributes: Specifies that you want to search files with specific attributes. For example: if you want to find all files that are read-only but are not hidden, you should select 'Yes' for Read Only attribute and 'No' for Hidden attribute.
  • File Time: Allows you to search files that have been created, modified, or accessed in the specified time range. You can specify an accurate time range (For example: 10/12/2008 12:32:11 - 12/12/2008 13:32:56) or you can specify the last number of seconds/minutes/hours/days. For example, you can search all files that have been modified in the last 10 minutes.
  • Search Subfolders: If this option is checked, SearchMyFiles will scan all subfolders under the specified base folders.
  • Find Folders: If this option is checked, SearchMyFiles will search for folders according to the other search options. If this options is not selected, SearchMyFiles will only search for files.

Getting MD5/SHA hashes of the found files

If you want to get the MD5/SHA hashes of the files that you found with SearchMyFiles, you can easily do it with HashMyFiles utility.
First, in the SearchMyFiles window, select the desired files and press Ctrl+E (Explorer Copy). In the HashMyFiles window, press Ctrl+V (Paste) to add the files that you previously selected in SearchMyFiles.

Duplicate Search Mode

Starting from version 1.35, SearchMyFiles also allows you to search duplicate files on your system. In order to use this feature, simply change the search mode in the 'Search Options' window to 'Duplicates Search'.
When you switch to 'Duplicates Search' mode, all other search options are still relevant, and SearchMyFiles will scan your files according to these settings. For example: if you choose to search for files larger than 500KB, SearchMyFiles will only search for duplicate files that their size is larger than 500KB. In fact, it's highly recommended to narrow your duplicate search by using date/size restrictions, because if you don't do it, the duplicate search will be very slow, and it'll consume a large amount of memory. When you are in 'Duplicates Search' mode, SearchMyFiles will first scan all files and folders according to your settings, and only after the scan is finished, it'll locate the duplicate files and add them to the files list on the main window. SearchMyFiles automatically mark the duplicate files with identical colors (up to 64 different colors). There is also a 'Duplicate Number' column, which displays identical number for each chunk of duplicate files. You can click the 'Duplicate Number' column header in order to sort by this column and to easily view the chunks of duplicate files.
Be aware that the duplicate search is done by making a binary comparison of the files with the same size, byte by byte.

Non-Duplicates Search Mode

This mode is the opposite of Duplicate Search Mode, which means that it displays all files in the specified folders that are not duplicated.

Command-Line Options

You can use the following command-line option in order to execute a search without displaying any user interface and save the result into a file. Be aware that when you do that, the only way to stop the search is by termintaing the process of SearchMyFiles (SearchMyFiles.exe).
/config <Filename> Loads the configuration from the specified .cfg file. Can be used in conjunction with the save options, like /stext, /scomma and so on.
/StartSearch Tells SearchMyFiles utility to start the search immediately, without displaying the 'Search Options' dialog-box, according to the last configuration or according to the config file specified in /config parameter.
/ExplorerCopy Search files without user interface according to the configuration file, and then copy the found files list to the clipboard in Windows Explorer format (Like 'Explorer Copy' option)
/SaveDirect Save the files list in SaveDirect mode. For using with the other save command-line options ( /scomma, /stab, /sxml, and so on...)
When you use the SaveDirect mode, the details of found files are saved directly to the disk, without loading them into the memory first. This means that you can save a list with large amount of files into your disk without any memory problem, as long as you have enough disk space to store the saved file. The drawback of this mode: You cannot sort the files list according to the name or any other column. The details of files are simply saved in the order that SearchMyFiles found them.
/stext <Filename> Search and save the result into a regular text file.
/stab <Filename> Search and save the result into a tab-delimited text file.
/scomma <Filename> Search and save the result into a comma-delimited text file (csv).
/stabular <Filename> Search and save the result into a tabular text file.
/shtml <Filename> Search and save the result into HTML file (Horizontal).
/sverhtml <Filename> Search and save the result into HTML file (Vertical).
/sxml <Filename> Search and save the result to XML file.
/sort <column> This command-line option can be used with other save options for sorting by the desired column. If you don't specify this option, the list is sorted according to the last sort that you made from the user interface. The <column> parameter can specify the column index (0 for the first column, 1 for the second column, and so on) or the name of the column, like "Filename" and "Created Time". You can specify the '~' prefix character (e.g: "~Created Time") if you want to sort in descending order. You can put multiple /sort in the command-line if you want to sort by multiple columns. Examples:
SearchMyFiles.exe /shtml "f:\temp\1.html" /sort 2 /sort ~1
SearchMyFiles.exe /shtml "f:\temp\1.html" /sort "~Extension" /sort "Filename"
/nosort When you specify this command-line option, the list will be saved without any sorting.
You can also use the following command-line option to override the configuration loaded from the .cfg file:
/FilesWildcard <Wildcard> Specifies the files wildcard.
/SubfoldersWildcard <Wildcard> Specifies the subfolders wildcard.
/BaseFolder <Folder> Specifies the base folders to search.
/ExcludedFolder <Folder> Specifies the folders to exclude in the search.
/ScanSubfolders <0 | 1> Specifies whether to search in subfolders. 1 = Yes, 0 = No.
/ExcludeExtensions <Extensions> Specifies one or more extensions to exclude.
/FindFiles <0 | 1> Specifies whether to find files. 1 = Yes, 0 = No.
/FindFolders <0 | 1> Specifies whether to find folders. 1 = Yes, 0 = No.
/UseFileSizeAtLeast <0 | 1>
/UseFileSizeAtMost <0 | 1>
Specifies whether to use the "At Least" and "At Most" file size filter. 1 = Yes, 0 = No.

/FileSizeAtLeast <Value>
/FileSizeAtMost <Value>
Specifies the values of file size filters.

/FileSizeAtLeastUnit <Value>
/FileSizeAtMostUnit <Value>
Specifies the units of file size filters. 1 = Bytes, 2 = KB, 3 = MB, 4 = GB

/FileAttrReadOnly <Value>
/FileAttrSystem <Value>
/FileAttrHidden <Value>
/FileAttrArchive <Value>
/FileAttrCompressed <Value>
/FileAttrEncrypted <Value>
Specifies the file attributes filter. 1 = Both, 2 = No, 3 = Yes.
/FileContains <Value> Specifies the 'File Contains' option. 0 = None, 1 = Text, 2 = Binary.
/FileContainsText <String> Specifies the 'File Contains' text.
/FileContainsCaseSensitive <0 | 1> Specifies whether the 'File Contains' string is case sensitive. 1 = Yes, 0 = No.

/FileTimeCreated <Value>
/FileTimeModified <Value>
/FileTimeAccessed <Value>
Specifies the filter option by file time. 0 = All Times, 1 = Time Range, 2 = Last XX Seconds, 3 = Last XX Minutes, 4 = Last XX Hours, 5 = Last XX Days.

/FileTimeCreatedLastXX <Value>
/FileTimeModifiedLastXX <Value>
/FileTimeAccessedLastXX <Value>
Specifies the last xx seconds/minutes/hours/days values.

/FileTimeAccessed1 <Value>
/FileTimeAccessed2 <Value>
/FileTimeModified1 <Value>
/FileTimeModified2 <Value>
/FileTimeCreated1 <Value>
/FileTimeCreated2 <Value>
Specifies date/time range values. The date/time value must be in the following format: dd-mm-yyyy hh:nn:ss For example:
SearchMyFiles.exe /FileTimeModified1 "10-01-2010 12:00:00" /FileTimeModified2 "18-01-2010 08:00:00"
/SubFolderDepth <Value> Specifies the subfolders depth. 0 = Unlimited.
/UseMaxNumOfFiles <0 | 1> Specifies whether to limit the number of files to find. 1 = Yes, 0 = No.
/MaxNumOfFiles <Value> Specifies the maximum number of files to find.
/SearchMode <1 | 2> Specifies the search mode. 1 = Standard Search, 2 = Duplicate Search.
Examples:
SearchMyFiles.exe /scomma c:\temp\bfiles1.csv /FilesWildcard b*.*
SearchMyFiles.exe /config c:\temp\myconfig.cfg /BaseFolder "c:\Program Files" /shtml c:\temp\result.html
SearchMyFiles.exe /stab c:\temp\searchfiles.txt

Translating SearchMyFiles to other languages

In order to translate SearchMyFiles to other language, follow the instructions below:
  1. Run SearchMyFiles with /savelangfile parameter:
    SearchMyFiles.exe /savelangfile
    A file named SearchMyFiles_lng.ini will be created in the folder of SearchMyFiles utility.
  2. Open the created language file in Notepad or in any other text editor.
  3. Translate all string entries to the desired language. Optionally, you can also add your name and/or a link to your Web site. (TranslatorName and TranslatorURL values) If you add this information, it'll be used in the 'About' window.
  4. After you finish the translation, Run SearchMyFiles, and all translated strings will be loaded from the language file.
    If you want to run SearchMyFiles without the translation, simply rename the language file, or move it to another folder.
Share this article :

Post a Comment