2010-07-21 9 views
0

J'ai utilisé cette option pour enregistrer mon fichierEnregistrement du fichier avec le même nom

string m_strDate = DateTime.Now.ToString("MM/dd/yyyy"); 
m_strDate = m_strDate.Replace("/", ""); 
strPath += "/FileHeader_" + m_strDate + ".txt"; 

Alors que pour cela, je peux enregistrer un fichier par jour. Mais si je crée pour une autre fois les données dans ce fichier texte est remplacé par le nouveau. Maintenant, ce que je dois est que je voudrais enregistrer mon fichier avec un nom ainsi que la date et un numéro comme

"/FileHeader_1" + m_strDate + ".txt" 

et ainsi de suite.

+0

Si vous n'avez pas besoin, utilisez des 'DateTime.Today.ToString()' - il est peu plus vite – abatishchev

+0

As-tu une question? – leppie

+0

N'oubliez pas non plus 'System.IO.Path.Combine()' pour combiner le nom du répertoire et le nom du fichier sans vous soucier de la barre oblique au milieu, etc. – abatishchev

Répondre

1
string fileName = "/FileHeader_" + m_strDate + ".txt"; 
if (File.Exists(fileName)) 
{ 
    int index = 1; 
    fileName = "/FileHeader_" + index + m_strDate + ".txt"; 
    while (File.Exists(fileName)) 
    fileName = "/FileHeader_" + ++index + m_strDate + ".txt"; 
} 
2
strPath = "/FileHeader_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt"; 

ou vérifier si le fichier existe:

strPath = "/FileHeader_{0}" + DateTime.Now.ToString("MMddyyyy") + ".txt"; 
if (File.Exists(string.format(strPath, "")){ 
    int i = 1; 
    while(File.Exists(string.format(strPath, i)){ i++ ; } 
    strPath = string.Format(strPath, i); 
} 
else { 
    strPath = string.format(strPath, ""); 
} 
0
string head = Path.Combine(strPath, "FileHeader_"); 
string tail = DateTime.Now.ToString("MMddyyyy") + ".txt"; 

int index = 1; 
string fileName = head + tail; 

while (File.Exists(fileName)) 
{ 
    fileName = head + index + tail; 
    index++; 
} 
Questions connexes