Search code examples
c#directoryauto-increment

How to make auto increament folder?


I have tried how to make auto increment folder, but there is a problem when numbering, does anyone know where is the problem?

public void NewFolder()
        {
            try
            {
                string FolderName = Path.Combine(txtOutputFileEn.Text, txtNamaFile.Text);
                tempFolder = FolderName;
                if (!Directory.Exists(tempFolder))
                {
                    Directory.CreateDirectory(tempFolder);
                }
                else if (Directory.Exists(tempFolder))
                {
                    tempFolder = tempFolder + ("001");
                    if (!Directory.Exists(tempFolder))
                    {
                        Directory.CreateDirectory(tempFolder);
                    }
                    else if (Directory.Exists(tempFolder)) 
                    {
                        int x = 1;
                        for (x = 0; x < 50; x++)
                        {
                            string angkaString = tempFolder.Substring(tempFolder.Length - 3);
                            int angka = Convert.ToInt32(angkaString) + x;
                            string angka00 = "00" + angka.ToString();
                            tempFolder = FolderName + angka00.Substring(angka00.Length - 3);
                            if (!Directory.Exists(tempFolder))
                            {
                                Directory.CreateDirectory(tempFolder);
                                return;
                            }
                        }
                    }
                }
                MessageBox.Show(tempFolder);
            }
            catch (IOException ex)
            {
                MessageBox.Show(this, ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

Here is output the name folder = folder001,folder002,folder004,folder007,folder11,folder16,folder22.

I want make the name = folder001,folder002,folder003,folder004.. next


Solution

  • Your problem is here:

                        int angka = Convert.ToInt32(angkaString) + x;
    

    Use this:

                        int angka = Convert.ToInt32(angkaString) + 1;