2016-11-15 2 views
0

У меня есть последующие:Удалить файл: // префикс с #

string file = string.Concat(
       System.IO.Path.GetDirectoryName(
        System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase 
       ), 
       "bla.xml"); 

Теперь файл является:

file:\C:\test\Debugbla.xml 

Как я могу удалить "файл: \" префикс?

Благодаря

+4

'.Replace (" file: \ "," ")' – sed

ответ

6

Uri класс - это способ манипулировать Ури. В то время как string.Replace является вариантом, лучше использовать инструменты, явно предназначенные для конкретного случая, которые также позаботятся об обработке правил экранирования, где это необходимо.

string file = string.Concat(System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), "bla.xml"); 

file = new Uri(file).AbsolutePath; 
+0

[LocalPath] (https://msdn.microsoft.com/en-us/library/system.uri.localpath%28v=vs.110% 29.aspx), вероятно, лучше подходит, но действительно класс 'Uri' является правильным способом работы с Uris. –

0
file = file.Replace(@"file:\", ""); 

Вы можете заменить его с пустой строкой.

0

Вы можете заменить файл: \ часть пути таким образом.

1

Используйте Assembly.Location свойство вместо, который возвращает нормальный FilePath.

Также используйте Path.Join().

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