97 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			97 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | # Dirent
 | ||
|  | Dirent is a C/C++ programming interface that allows programmers to retrieve | ||
|  | information about files and directories under Linux/UNIX.  This project | ||
|  | provides Linux compatible Dirent interface for Microsoft Windows. | ||
|  | 
 | ||
|  | 
 | ||
|  | # Installation
 | ||
|  | 
 | ||
|  | Download the latest Dirent installation package from | ||
|  | [GitHub](https://github.com/tronkko/dirent/releases) and | ||
|  | unpack the installation file with 7-zip, for example.  The installation | ||
|  | package contains dirent.h file as well as a few example programs and | ||
|  | tests. | ||
|  | 
 | ||
|  | 
 | ||
|  | ## Install Dirent for All Programs
 | ||
|  | 
 | ||
|  | To make dirent.h available for all C/C++ programs, simply copy the | ||
|  | ``include/dirent.h`` file to the system include directory.  System include | ||
|  | directory contains header files such as assert.h and windows.h.  In Visual | ||
|  | Studio 2008, for example, the system include may be found at | ||
|  | ``C:\Program Files\Microsoft Visual Studio 9.0\VC\include``. | ||
|  | 
 | ||
|  | Everything you need is included in the single dirent.h file, and you can | ||
|  | start using Dirent immediately -- there is no need to add files to your | ||
|  | Visual Studio project. | ||
|  | 
 | ||
|  | 
 | ||
|  | ## Embed Dirent into Your Own Project
 | ||
|  | 
 | ||
|  | If you wish to distribute dirent.h alongside with your own source code, then | ||
|  | copy ``include/dirent.h`` file to a new sub-directory within your project and | ||
|  | add that directory to include path on Windows while omitting the directory | ||
|  | under Linux/UNIX.  This allows your project to be compiled against native | ||
|  | dirent.h on Linux/UNIX while substituting the functionality on Microsoft | ||
|  | Windows. | ||
|  | 
 | ||
|  | 
 | ||
|  | ## Examples
 | ||
|  | 
 | ||
|  | The installation package contains four example programs: | ||
|  | 
 | ||
|  | Program  | Purpose | ||
|  | -------- | ----------------------------------------------------------------- | ||
|  | ls       | List files in a directory, e.g. ls "c:\Program Files" | ||
|  | find     | Find files in subdirectories, e.g. find "c:\Program Files\CMake" | ||
|  | updatedb | Build database of files in a drive, e.g. updatedb c:\ | ||
|  | locate   | Locate a file from database, e.g. locate notepad.exe | ||
|  | 
 | ||
|  | To build the example programs, first install [CMake](https://cmake.org/). | ||
|  | Then, with CMake installed, open command prompt and create a temporary | ||
|  | directory ``c:\temp\dirent`` for the build files as | ||
|  | 
 | ||
|  | ``` | ||
|  | c:\ | ||
|  | mkdir temp | ||
|  | mkdir temp\dirent | ||
|  | cd temp\dirent | ||
|  | ``` | ||
|  | 
 | ||
|  | Generate build files as | ||
|  | 
 | ||
|  | ``` | ||
|  | cmake d:\dirent | ||
|  | ``` | ||
|  | 
 | ||
|  | where ``d:\dirent`` is the root directory of the Dirent package (containing | ||
|  | this README.md and LICENSE file). | ||
|  | 
 | ||
|  | Once CMake is finished, open Visual Studio, load the generated dirent.sln file | ||
|  | from the build directory and build the solution.  Once the build completes, run | ||
|  | the example programs from the command prompt as | ||
|  | 
 | ||
|  | ``` | ||
|  | cd Debug | ||
|  | ls . | ||
|  | find . | ||
|  | updatedb c:\ | ||
|  | locate cmd.exe | ||
|  | ``` | ||
|  | 
 | ||
|  | 
 | ||
|  | # Copying
 | ||
|  | 
 | ||
|  | Dirent may be freely distributed under the MIT license.  See the | ||
|  | [LICENSE](LICENSE) file for details. | ||
|  | 
 | ||
|  | 
 | ||
|  | # Alternatives to Dirent
 | ||
|  | 
 | ||
|  | I ported Dirent to Microsoft Windows in 1998 when only a few alternatives | ||
|  | were available.  However, the situation has changed since then and nowadays | ||
|  | both [Cygwin](http://www.cygwin.com) and [MingW](http://www.mingw.org) | ||
|  | allow you to compile a great number of UNIX programs in Microsoft Windows. | ||
|  | They both provide a full dirent API as well as many other UNIX APIs.  MingW | ||
|  | can even be used for commercial applications! |