Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Из абсолютного в виртуалный путь

67K
25 февраля 2011 года
rwety
4 / / 21.02.2011
Как найти виртуальный путь относительно каталога проекта если известен абсолютный путь файла
278
25 февраля 2011 года
Alexander92
1.1K / / 04.08.2008
 
Код:
bool FullPathToRelative(const char *lpszFullPath, const char *lpszProjectPath, char *lpszOutputBuffer, size_t bufferSize) {
  if (char *lpszRelativePath = strstr(lpszFullPath, lpszProjectPath)) {
    memset((void *)lpszOutputBuffer, 0, bufferSize);
    int nCharsToCopy = (bufferSize > lpszRelativePath - lpszFullPath) ? bufferSize : lpszRelativePath - lpszFullPath;
    strncpy(lpszOutputBuffer, lpszRelativePath, nCharsToCopy);
    return true;
  }
  return false;
 }


Писал без проверки, идея ясна, думаю.
67K
25 февраля 2011 года
rwety
4 / / 21.02.2011
А можно на С# и попроще, половину кода не понял :)
278
25 февраля 2011 года
Alexander92
1.1K / / 04.08.2008
 
Код:
string FullPathToRelative(string fullPath, string projectPath) {
  return fullPath.Substring(projectPath.Length, fullPath.Length - projectPath.Length);
}


Вот вам попроще. :)
5
25 февраля 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: Alexander92
 
Код:
Вот вам попроще. :)В общем случае это некоррентный код. Он не будет работать с путями в которых могут встречаться двойные точки.

[code]
string FullPathToRelative(string fullPath, string projectPath)
{
  fullPath = System.IO.Path.GetFullPath(fullPath);
  projectPath = System.IO.Path.GetFullPath(projectPath);
  return fullPath.Substring(projectPath.Length, fullPath.Length - projectPath.Length);
}
67K
26 февраля 2011 года
rwety
4 / / 21.02.2011
Всем спасибо за помощь
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог