Как создать папку, используя имя переменной в C #? - PullRequest
0 голосов
/ 11 сентября 2010

Directory.CreateDirectory (@ "C: \ тест");

Отлично работает. Я могу создать папку. НО код ниже не работает.

using System;
using System.IO;
class iolar
{

 public static void klasorOlustur()
 {
  Console.WriteLine("Oluşturmak istediğiniz BİRİNCİ  klasörün adı?");
  string a=Console.ReadLine();
  Console.WriteLine("oluşturmak istediğiniz İKİNCİ klasörün adı?");
  string b=Console.ReadLine();
  Console.WriteLine("Klasörler oluşturuluyor.. Lütfen bekleyin...");

  string klasorYolu="@\"H:\\"+a+"\"";
  string klasorYolu2="\""+b+"\"";

  DirectoryInfo klasorcuk=new DirectoryInfo(klasorYolu);
  Console.Write(klasorYolu);
  if(klasorcuk.Exists==false)
  {
   klasorcuk.Create();
   Console.WriteLine("İlk klasör oluşturuldu...");
   DirectoryInfo klasorcuk2=klasorcuk.CreateSubdirectory(klasorYolu2);
   Console.WriteLine("İkinci klasör de oluşturuldu...");

  }

 }

 static void Main()
 {
  klasorOlustur();
 }
}

Я получаю «Необработанное исключение: System.ArgumentException: недопустимые символы в пути». ошибка. Я нашел кое-что о "классе пути", но не смог получить четкого ответа.

Что мне делать?

Ответы [ 2 ]

3 голосов
/ 11 сентября 2010
 string klasorYolu="@\"H:\\"+a+"\"";

Не делайте содержимое строки похожим на то, что вы пишете в программе на C #.Это должно выглядеть примерно так:

 string klasorYolu = @"H:\" + a;

Обязательно используйте метод Path.Combine (), он заботится о том, чтобы поставить обратную косую черту в нужном месте.

1 голос
/ 11 сентября 2010

Попробуйте

 string klasorYolu = "H:\\" + a;
 string klasorYolu2 = b;

Нет необходимости добавлять эти @ и ", когда вы уже внутри строкового литерала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...