2011-12-01 3 views
1

Я хочу магазинов файлы в диске D.Как преобразовать физический путь в виртуальный путь в C#

string fileName = Path.Combine(Server.MapPath(@"D:\Files"), File_Video.FileName); 

Как я могу преобразовать его в виртуальный путь

+0

Не могли бы вы сразу сохранить файлы на физический путь? Вы не должны ничего отображать, если вы уже это знаете. – millimoose

ответ

2

Я не уверен, что ваш код образец отображается. Server.MapPath принимает виртуальный путь как свой параметр, а не физический путь. Если вы хотите filename содержать физический путь, то вам просто нужно сделать:

string fileName = Path.Combine(@"D:\Files", File_Video.FileName); 

Если вы хотите знать, как получить виртуальный каталог D: \ файлы (например, так что вы можете ссылаться на вещи там) то это сложнее, так как нет необходимости в каком-либо отображении. Обычно для доступа к этим файлам вы должны либо настроить виртуальный каталог, указывающий на этот физический путь, и зафиксировать его в своих ссылках. В противном случае вы можете создать прокси-страницу, которая будет действовать как aproxy для файлов. Это имеет то преимущество, что вы можете выполнять проверки безопасности и т. Д., Чтобы убедиться, что они доступны только для входа в систему пользователям и т. Д. (Поскольку видеоролик большой, и вы, вероятно, не хотите, чтобы весь интернет-доступ имел доступ к нему, если они знать правильный URL-адрес).

Я надеюсь, что это решает вашу проблему. Если вы не можете уточнить, что такое ваша проблема?

0

Server.MapPath() используется главным образом, когда у вас есть виртуальный Путь. Для физического пути вы можете напрямую использовать Path.Combine(param1,param2)

Надеюсь, это вам поможет!

+1

Что добавил ваш ответ, который еще не объяснил Крис? –

+0

@ScottChamberlain: Как помогают другие ответы. –

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