Преобразование структуры локальной папки в структуру папки на сервере

1

Я сейчас играю с Paths в.Net и сталкивался с некоторыми трудностями в отношении репликации структуры локальных папок, переданной как строка из веб-службы, на мой сайт, работающий под локальным хостом в IIS Express.

По сути, наши пользователи будут выбирать изображение в нашем настольном программном обеспечении, локальный путь которого будет отправлен как свойство изображения в нашем веб-сервисе. Итак, когда мой скрипт обращается к веб-службе, он получает строку, такую как:

C:\\Users\\axumadmin\\Pictures\\axumImages\\Countries\\Canada\\canadianFlag.jpg

То, что наши пользователи будут делать, это FTP эта структура папок в указанный каталог на нашем сервере:

ServerRoot\\umbraco\\axumImages\\Countries\\Canada\\canadianFlag.jpg

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

axumImages\\Countries\\Canada\\canadianFlag.jpg

Я уже пробовал играть с System.IO.Path, чтобы преобразовать этот путь в формат, который я хочу вернуть, но в конечном итоге все, что я получил до сих пор, либо возвращает только имя файла изображения:

canadianFlag.jpg
System.IO.Path.GetFileName(image.FileName);

или родительский каталог изображения

C:\\Users\\axumadmin\\Pictures\\axumImages\\Countries\\Canada

Поэтому мой вопрос: как я могу разобрать строку так, чтобы она использовала только axumImages и ее потомков?

Любая помощь будет принята с благодарностью.

Теги:
path
iis-express

2 ответа

1
Лучший ответ

использовать string.Substring

var startIndex = image.FileName.IndexOf("axumImages");   
string test = image.FileName.Substring(startIndex, image.FileName.Length-startIndex)
0

В конце концов я решил это решить, используя синтаксический анализ строк.

string test = image.FileName.Split(new[] { "axumImages" }, StringSplitOptions.None)[1];

В этом примере image.Filename - мое имя файла. Поэтому, если имя файла:

C:\\Users\\axumadmin\\Pictures\\axumImages\\Countries\\Canada\\canadianFlag.jpg

это вернет

\\Countries\\Canada\\canadianFlag.jpg

Затем я могу объединить это в полезную переменную ниже, которая затем соответствует требуемому пути:

var actualPath = "axumImages" + "test";
  • 1
    Это работает наверняка, но, вероятно, это будет чище и лучше в следующий раз: var startIndex = image.FileName.IndexOf("axumImages"); string test = image.FileName.Substring(startIndex, image.FileName.Length-startIndex)
  • 1
    Почему это чище и лучше? Вы говорите с разработчиком Javascript, который изучает C # и .Net, пока он идет вместе :-)
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню