mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-10-30 04:26:50 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|   Listfiles
 | |
| 
 | |
|   This example shows how print out the files in a
 | |
|   directory on a SD card
 | |
| 
 | |
|   The circuit:
 | |
|    SD card attached to SPI bus as follows:
 | |
|  ** MOSI - pin 11
 | |
|  ** MISO - pin 12
 | |
|  ** CLK - pin 13
 | |
|  ** CS - pin 4
 | |
| 
 | |
|   created   Nov 2010
 | |
|   by David A. Mellis
 | |
|   modified 9 Apr 2012
 | |
|   by Tom Igoe
 | |
|   modified 2 Feb 2014
 | |
|   by Scott Fitzgerald
 | |
| 
 | |
|   This example code is in the public domain.
 | |
| 
 | |
| */
 | |
| #include <SPI.h>
 | |
| #include <SD.h>
 | |
| 
 | |
| File root;
 | |
| 
 | |
| void setup() {
 | |
|   // Open serial communications and wait for port to open:
 | |
|   Serial.begin(9600);
 | |
|   while (!Serial) {
 | |
|     ; // wait for serial port to connect. Needed for Leonardo only
 | |
|   }
 | |
| 
 | |
|   Serial.print("Initializing SD card...");
 | |
| 
 | |
|   if (!SD.begin(4)) {
 | |
|     Serial.println("initialization failed!");
 | |
|     return;
 | |
|   }
 | |
|   Serial.println("initialization done.");
 | |
| 
 | |
|   root = SD.open("/");
 | |
| 
 | |
|   printDirectory(root, 0);
 | |
| 
 | |
|   Serial.println("done!");
 | |
| }
 | |
| 
 | |
| void loop() {
 | |
|   // nothing happens after setup finishes.
 | |
| }
 | |
| 
 | |
| void printDirectory(File dir, int numTabs) {
 | |
|   while (true) {
 | |
| 
 | |
|     File entry =  dir.openNextFile();
 | |
|     if (! entry) {
 | |
|       // no more files
 | |
|       break;
 | |
|     }
 | |
|     for (uint8_t i = 0; i < numTabs; i++) {
 | |
|       Serial.print('\t');
 | |
|     }
 | |
|     Serial.print(entry.name());
 | |
|     if (entry.isDirectory()) {
 | |
|       Serial.println("/");
 | |
|       printDirectory(entry, numTabs + 1);
 | |
|     } else {
 | |
|       // files have sizes, directories do not
 | |
|       Serial.print("\t\t");
 | |
|       Serial.println(entry.size(), DEC);
 | |
|     }
 | |
|     entry.close();
 | |
|   }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 |