2013-01-02 13 views
5

uno veloce, il motivo per cui questo codice isnt lavorando per me:Date come nome della cartella

Directory.CreateDirectory(DateTime.ToString("dd-MM-yyyy")); 

erorr:

Error 1 An object reference is required for the non-static field, method, or property 'System.DateTime.ToString(string)' Documents\Visual Studio 2008\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 83 39 WindowsFormsApplication1 

Cosa c'è di sbagliato? E se mi piacerebbe avere cartelle nome come "Questa è la cartella di" e quindi aggiungere la data di oggi, come dovrebbe apparire?

+0

Prova l'espressione più semplice 'DateTime.ToString (" gg-MM-aaaa ")' - cosa succede? –

risposta

17

Forse cercavi:

Directory.CreateDirectory(DateTime.Now.ToString("dd-MM-yyyy")); 
4
Directory.CreateDirectory(DateTime.Now.ToString("dd-MM-yyyy")); 
4

Cosa c'è di sbagliato?

ToString è un'istanza non metodo uno statico, quindi non si può chiamare il DateTime classe direttamente - è necessario chiamare su un un'istanza della classe DateTime.

E se mi piacerebbe avere cartelle nome come "Questa è la cartella di" e quindi aggiungere la data di oggi, come dovrebbe apparire?

È possibile utilizzare la proprietà Now/UtcNow della classe DateTime che darebbe l'istanza ora attuale per esempio

DateTime.UtcNow.ToString("dd-MM-yyyy"); 
+2

+1. per commenti dettagliati. Nota a margine: l'uso del formato "yyyy-MM-dd" rende l'ordinamento delle cartelle per nome molto più ragionevole ... –

+0

@AlexeiLevenkov +1 perché è un punto giusto. Stavo pensando al formato UTC nella mia testa quando ho postato la risposta, ma poiché l'OP ha specificamente menzionato 'gg-MM-aaaa ', volevo dare una soluzione che avrebbe funzionato nel modo in cui volevano. Tuttavia, come dici per gli scopi di classificazione, il formato della data UTC sarebbe migliore. – James

Problemi correlati