StudentSC Ответов: 2

Как создать папку в C#?


Я хочу создать txt-файл.

Если txt создается в первый раз, вы получаете number1.

Если txt был создан ранее, вы получите число + 1. Количество вхождений +1 складывается.(Номер + 1 так и сделал. Но 2 раза я был номером 1, это всегда происходит.)

Что я уже пробовал:

string path= @"C:\Example\Example.txt";
int number;
string foldername;
int count=0;

if(File.Exists(path))
{
   using (TextWriter tw=new StreamWriter(path))
{
    tw.Writeline();
    count++;
    number=count;
}
if(count !=0)
{
     number=number+1;
     foldername="T" +number;
}

}

else if (!File.Exists(path))
{
   File.Create(path).Dispose();
   using(TextWriter tw=new StreamWriter(path))
{
   tw.Writeline();
   count=1;
   foldername="T" + count;
}

}

2 Ответов

Рейтинг:
2

Aydin Homay

Привет,
Ты так усложнил свою работу. Я написал вам ту часть, которая дает вам правильный индекс для вашего имени файла. Если вам нужна была дополнительная помощь, то дайте мне знать, что я завершу решение.

int count = 0;
string fileName = "Example.txt";
string path = @"C:\Example\";
if (File.Exists(Path.Combine(path, fileName)))
    count = Directory.EnumerateFiles(path).Count();
count++;
//Here you go the count now is ready to be your file index.
fileName = Path.Combine(path, $"Example{count}.txt");


Овации,
АХ


Рейтинг:
0

MadMyche

Похоже, тебе не помешало бы ... do...while цикл для просмотра последовательных файлов, прямо сейчас это выглядит так, как будто вы пытаетесь использовать только "сырое" имя файла и меняете его на raw1, если оригинал существует.

Вы можете включить это в свой код, чтобы получить последнюю нумерованную версию файла. Синтаксис может быть не 100%, так как в данный момент я ограничен блокнотом

private int GetLastFileNumber(string FileFolder, string Filename, string FileExtension) {
  int FileCount  = 0;
  string FileCheck;
  string FileExists = True;
  do {
    if (FileCount == 0) { FileCheck = Filename + "." + FileExtension; }
    else { FileCheck = string.Format("{0}{1}.{2}", FileName, FileCount, FileExtension);
    FileExists = File.Exists(FileFolder+FileCheck)
    FileCount++
  } while(FileExists);
  return FileCount;
}