|
@@ -295,6 +295,75 @@ void CardReader::openFile(char* name,bool read)
|
295
|
295
|
|
296
|
296
|
}
|
297
|
297
|
|
|
298
|
+void CardReader::removeFile(char* name)
|
|
299
|
+{
|
|
300
|
+ if(!cardOK)
|
|
301
|
+ return;
|
|
302
|
+ file.close();
|
|
303
|
+ sdprinting = false;
|
|
304
|
+
|
|
305
|
+
|
|
306
|
+ SdFile myDir;
|
|
307
|
+ curDir=&root;
|
|
308
|
+ char *fname=name;
|
|
309
|
+
|
|
310
|
+ char *dirname_start,*dirname_end;
|
|
311
|
+ if(name[0]=='/')
|
|
312
|
+ {
|
|
313
|
+ dirname_start=strchr(name,'/')+1;
|
|
314
|
+ while(dirname_start>0)
|
|
315
|
+ {
|
|
316
|
+ dirname_end=strchr(dirname_start,'/');
|
|
317
|
+ //SERIAL_ECHO("start:");SERIAL_ECHOLN((int)(dirname_start-name));
|
|
318
|
+ //SERIAL_ECHO("end :");SERIAL_ECHOLN((int)(dirname_end-name));
|
|
319
|
+ if(dirname_end>0 && dirname_end>dirname_start)
|
|
320
|
+ {
|
|
321
|
+ char subdirname[13];
|
|
322
|
+ strncpy(subdirname, dirname_start, dirname_end-dirname_start);
|
|
323
|
+ subdirname[dirname_end-dirname_start]=0;
|
|
324
|
+ SERIAL_ECHOLN(subdirname);
|
|
325
|
+ if(!myDir.open(curDir,subdirname,O_READ))
|
|
326
|
+ {
|
|
327
|
+ SERIAL_PROTOCOLPGM("open failed, File: ");
|
|
328
|
+ SERIAL_PROTOCOL(subdirname);
|
|
329
|
+ SERIAL_PROTOCOLLNPGM(".");
|
|
330
|
+ return;
|
|
331
|
+ }
|
|
332
|
+ else
|
|
333
|
+ ;//SERIAL_ECHOLN("dive ok");
|
|
334
|
+
|
|
335
|
+ curDir=&myDir;
|
|
336
|
+ dirname_start=dirname_end+1;
|
|
337
|
+ }
|
|
338
|
+ else // the reminder after all /fsa/fdsa/ is the filename
|
|
339
|
+ {
|
|
340
|
+ fname=dirname_start;
|
|
341
|
+ //SERIAL_ECHOLN("remaider");
|
|
342
|
+ //SERIAL_ECHOLN(fname);
|
|
343
|
+ break;
|
|
344
|
+ }
|
|
345
|
+
|
|
346
|
+ }
|
|
347
|
+ }
|
|
348
|
+ else //relative path
|
|
349
|
+ {
|
|
350
|
+ curDir=&workDir;
|
|
351
|
+ }
|
|
352
|
+ if (file.remove(curDir, fname))
|
|
353
|
+ {
|
|
354
|
+ SERIAL_PROTOCOLPGM("File deleted:");
|
|
355
|
+ SERIAL_PROTOCOL(fname);
|
|
356
|
+ sdpos = 0;
|
|
357
|
+ }
|
|
358
|
+ else
|
|
359
|
+ {
|
|
360
|
+ SERIAL_PROTOCOLPGM("Deletion failed, File: ");
|
|
361
|
+ SERIAL_PROTOCOL(fname);
|
|
362
|
+ SERIAL_PROTOCOLLNPGM(".");
|
|
363
|
+ }
|
|
364
|
+
|
|
365
|
+}
|
|
366
|
+
|
298
|
367
|
void CardReader::getStatus()
|
299
|
368
|
{
|
300
|
369
|
if(cardOK){
|