Nadpisywanie pliku

0

Witam i mam problem z nazewnictwem a dokładniej w tym problem że nie wiem jak automatycznie nadpisywać kolejne pliki po sobie

            FileStream plik = new FileStream("C://TEXTY/text.txt", FileMode.CreateNew);
            StreamWriter f = new StreamWriter(plik);
            f.Write(richTextBox1.Text);
            f.Close();

pierwszy plik jak się utworzy to text.txt a następny powinien być text_2.txt itd. ale bez mojego udziału więc zadaje jeszcze raz pytanie jak automatycznie nadpisać plik ?? bo nie chcę okna dialogowego hehe

0

w nawiasie podajesz nazwe pliku do utworzenia. Wczesniej mozna uzyc petli z fileexist("text_'+ nr +'.txt") jezeli funkcja zwroci false to FileStream("text_"+ nr +".txt", FileMode.CreateNew);

nr=1
jezeli fileexist("text_"+ nr +".txt")=false
FileStream("text_"+ nr +".txt", FileMode.CreateNew);
else
nr+1

0

FileStream plik;
int nr = 1;
if (File.Exists("C://TEXTY/text_" + nr + ".txt"))
plik = new FileStream("C://TEXTY/text_" + nr + ".txt", FileMode.CreateNew);
else
nr = ++nr;

            StreamWriter f = new StreamWriter(plik);
            f.Write(richTextBox1.Text);
            f.Close();

Teraz mam problem z Error Use of unassigned local variable 'plik' i niemoge go przeskoczyć ??

0
gorylla napisał(a)

FileStream plik;
int nr = 1;
if (File.Exists("C://TEXTY/text_" + nr + ".txt"))
plik = new FileStream("C://TEXTY/text_" + nr + ".txt", FileMode.CreateNew);
else
nr = ++nr;

            StreamWriter f = new StreamWriter(plik);
            f.Write(richTextBox1.Text);
            f.Close();

Teraz mam problem z Error Use of unassigned local variable 'plik' i niemoge go przeskoczyć ??

int n=1;

while(File.Exists("C://TEXTY/text_" + nr + ".txt")) //jezeli plik istnieje
{
  nr++;
                   if (File.Exists("C://TEXTY/text_" + nr + ".txt")) { //jezeli istnieje
                        plik = new FileStream("C://TEXTY/text_" + nr + ".txt", FileMode.CreateNew);                        
 
                       StreamWriter f = new StreamWriter(plik);
                       f.Write(richTextBox1.Text);
                       f.Close();
                  }
}
0

Ok już sam znalazłem rozwiązanie a oto one :

           DirectoryInfo dirinfo = new DirectoryInfo(@"C:\\TEXTY\");
           FileInfo[] files = dirinfo.GetFiles();
           FileStream plik;
            int nr = 1;
            nr = ++nr;
           plik = new FileStream("C://TEXTY/text_" + files.Length + ".txt", FileMode.CreateNew);
           StreamWriter f = new StreamWriter(plik);
            f.Write(richTextBox1.Text);
            f.Close();

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.