Ben Allington
Ben Allington

Reputation: 86

Having trouble creating a new folder on user input Visual Studio 2010 C#

Essentially I have a button and a text box and when the user inputs text and hits the button i want it to create anew folder in a selected destination, ive got my code currently and cant figure out why it wont work

private void button1_Click(object sender, EventArgs e)
{
    if (!Directory.Exists("C:\\Users\\Ben\\Documents\\CreateDirectoryTest" + Searchbox.Text)) 
    {
        Directory.CreateDirectory("C:\\Users\\Ben\\Documents\\CreateDirectoryTest" + Searchbox.Text); 
    }

}

am i missing something? help would be really appreciated

Upvotes: 0

Views: 337

Answers (2)

tnw
tnw

Reputation: 13887

I assume you're trying to check for a subdirectory of CreateDirectoryTest and create a directory inside of it if not. The way you're concatenating the string, if Searchbox.text is "TheFolder" for example, your string would end up looking like this:

C:\Users\Ben\Documents\CreateDirectoryTestTheFolder

You can either add a \\

if (!Directory.Exists("C:\\Users\\Ben\\Documents\\CreateDirectoryTest\\" + Searchbox.Text)) 
{
    Directory.CreateDirectory("C:\\Users\\Ben\\Documents\\CreateDirectoryTest\\" + Searchbox.Text); 
}

Or just use Path.Combine:

string path = System.IO.Path.Combine("C:\\Users\\Ben\\Documents\\CreateDirectoryTest", Searchbox.Text);
if (!Directory.Exists(path)) 
{
    Directory.CreateDirectory(path); 
}

Upvotes: 1

nvoigt
nvoigt

Reputation: 77354

Don't concatenate file system path's manually. Use the methods of System.IO:

private void button1_Click(object sender, EventArgs e)
{
    const string path = "C:\\Users\\Ben\\Documents\\CreateDirectoryTest\\";

    var directory = System.IO.Path.Combine(path, Searchbox.Text);

    if (!Directory.Exists(directory)) 
    {
        Directory.CreateDirectory(directory); 
    }
}

Upvotes: 1

Related Questions