2016-09-13 3 views
0

У меня есть довольно любопытная проблема. У меня есть этот код (написанный кем-то еще). Предполагается создать пару папок друг с другом при нажатии на определенную кнопку. Он использует это:Определение пути к папке

string directoryCrate = "/" + comboIndustry.Text + "/" + comboCustomerName.Text + "/" 

Теперь, как вы видите, разделителем для папок является «/». Но позже в коде мне нужно иметь полный путь к папке c: \ projects, а затем путь к новой папке, которая является/Industry/Customer/... Итак, если я хочу получить адрес в Буфер обмена было бы примерно так: C "\ projects/Industry/customer/... и, очевидно, я не могу открыть этот адрес в проводнике! По какой-то причине метод не примет« \ », когда я пытаюсь. . Может кто-нибудь помочь

+0

Вы пробовали string.replace заменить вперед косые черты с обратной косой чертой? –

+0

Что это связано с SQL Server? И почему вы используете '/' вместо '\'? Если вы хотите рассматривать этот текст как путь, используйте соответствующий разделитель. Кстати, если причина в том, что «потому что мы использовали строку для создания иерархий в базе данных», вы должны заменить ее целенаправленным типом иерархии. –

+0

Вам нужно поместить двоеточие (:) после имени диска и конвертировать передние косые черты в обратные косые черты (а также эту двойную кавычку) перед тем, как поместить их в буфер обмена. Подобно этому-C: \ projects \ Industry \ customer \ –

ответ

0

Вы можете использовать

System.IO.Path.DirectorySeparatorChar 

Чтобы получить стандартный символ разделения каталога для вашей системы. Кроме того, если вы пытаетесь сделать замену, убедитесь, чтобы начать строку с @ поэтому он не анализирует обратную косую черту, либо избежать их, как:

string backslash = @"\"; 
string anotherBackslash = "\\"; 
+0

Это сработало отлично. благодаря – Zoe

0

Попробуйте это:?.

string path = System.IO.Path.Combine(@"C:\Projects", directoryCrate) 
string fullPath = System.IO.Path.GetFullPath(path) 

или объединить его в одно заявление

string fullPath = System.IO.Path.GetFullPath(System.IO.Path.Combine(@"C:\Projects", directoryCrate)) 

Любой из вышеперечисленных двух должен дать вам полный путь с обратной косой чертой.

Смежные вопросы