2010-07-21 5 views
0

Я использовал это, чтобы сохранить мой файлСохранение файла с таким же именем

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

Так, согласно этому я могу сохранить файл в день. Но если я создаю в другое время, данные в этом текстовом файле заменяются новым. Теперь то, что мне нужно, я хотел бы сохранить свой файл с некоторым именем вместе с датой и номером, как

"/FileHeader_1" + m_strDate + ".txt" 

и так далее.

+0

Если вам не нужно время, используйте 'DateTime.Today.ToString()' - это немного быстрее – abatishchev

+0

У вас есть вопрос? – leppie

+0

Также не забывайте о 'System.IO.Path.Combine()', чтобы комбинировать имя каталога и имя файла, не беспокоясь о косой чертой в середине и т. Д. – abatishchev

ответ

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"; 

или проверить, существует ли файл:

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++; 
} 
Смежные вопросы