Распарсить путь и определить существование файла
От: Аноним  
Дата: 28.09.05 14:18
Оценка:
Есть ли какие-нибудь штатные средства, помогающие решить данную задачу, или нужно парсить вручную? Путь в данном случае может быть в любом виде, в котором он может быть записан в реестре. То есть может быть закавычен, содержать пробелы, помимо самого бинарника содержать параметры командной строки, быть в ДОС-овском формате или в формате Win32, может содержать только имя бинарника (в этом случае следует проверять существование файла по путям, прописанным в переменной окружения PATH)..
В общем, задача громоздкая и тяжелая. Как бы облегчить жизнь?
Re: Распарсить путь и определить существование файла
От: D_V_F Украина  
Дата: 28.09.05 15:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть ли какие-нибудь штатные средства, помогающие решить данную задачу, или нужно парсить вручную? Путь в данном случае может быть в любом виде, в котором он может быть записан в реестре. То есть может быть закавычен, содержать пробелы, помимо самого бинарника содержать параметры командной строки, быть в ДОС-овском формате или в формате Win32, может содержать только имя бинарника (в этом случае следует проверять существование файла по путям, прописанным в переменной окружения PATH)..

А>В общем, задача громоздкая и тяжелая. Как бы облегчить жизнь?

PathFileExists() и PathFindOnPath() должны сильно облегчить жизнь .
Re[2]: Распарсить путь и определить существование файла
От: Oleksij Украина  
Дата: 28.09.05 15:08
Оценка:
Здравствуйте, D_V_F, Вы писали:

D_V>Здравствуйте, Аноним, Вы писали:


А>>Есть ли какие-нибудь штатные средства, помогающие решить данную задачу, или нужно парсить вручную? Путь в данном случае может быть в любом виде, в котором он может быть записан в реестре. То есть может быть закавычен, содержать пробелы, помимо самого бинарника содержать параметры командной строки, быть в ДОС-овском формате или в формате Win32, может содержать только имя бинарника (в этом случае следует проверять существование файла по путям, прописанным в переменной окружения PATH)..

А>>В общем, задача громоздкая и тяжелая. Как бы облегчить жизнь?

D_V>PathFileExists() и PathFindOnPath() должны сильно облегчить жизнь .


Есть еще

void _splitpath(
   const char *path,
   char *drive,
   char *dir,
   char *fname,
   char *ext 
);
void _wsplitpath(
   const wchar_t *path,
   wchar_t *drive,
   wchar_t *dir,
   wchar_t *fname,
   wchar_t *ext 
);
Re: Распарсить путь и определить существование файла
От: gear nuke  
Дата: 28.09.05 18:21
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Есть ли какие-нибудь штатные средства, помогающие решить данную задачу, или нужно парсить вручную?


А в чём проблема парсить вручную?
/**
 *  @return arguments for main (int argc, char * argv[])
 */
int inline parse_command_line(char ** pargv[])
{
    static char * argv[MAX_PATH / 2];
    int argc = 0;
    char * p = GetCommandLineA();
    if( ! p )
        return -1;
    if( *p == '"' )
    {
        argv[argc++] = ++p;
        while( *p && *p != '"' ) p++;
        if( ! *p ) return -1;
        *p++ = '\0';
    }
    else
    {
        argv[argc++] = p;
        while( *p > ' ' ) p++;
        if( *p ) *p++ = '\0';
    }
    while( *p )
    {
        while( *p && *p <= ' ') p++;
        if( ! *p ) break;
        argv[argc++] = p;
        while( *p > ' ' ) p++;
        if( *p ) *p++ = '\0';           
    }
    *pargv = argv;
    return argc;
}

А> Путь в данном случае может быть в любом виде, в котором он может быть записан в реестре. То есть может быть закавычен, содержать пробелы, помимо самого бинарника содержать параметры командной строки, быть в ДОС-овском формате или в формате Win32, может содержать только имя бинарника (в этом случае следует проверять существование файла по путям, прописанным в переменной окружения PATH)..

Доработать напильником, и далее API про которые говорили здесь
Автор: D_V_F
Дата: 28.09.05
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: Распарсить путь и определить существование файла
От: Вертер  
Дата: 28.09.05 21:28
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть ли какие-нибудь штатные средства, помогающие решить данную задачу, или нужно парсить вручную? Путь в данном случае может быть в любом виде, в котором он может быть записан в реестре. То есть может быть закавычен, содержать пробелы, помимо самого бинарника содержать параметры командной строки, быть в ДОС-овском формате или в формате Win32, может содержать только имя бинарника (в этом случае следует проверять существование файла по путям, прописанным в переменной окружения PATH)..

А>В общем, задача громоздкая и тяжелая. Как бы облегчить жизнь?

по поводу проверки пути и файла, может быть поможет вот это: http://www.rsdn.ru/Forum/Message.aspx?mid=1248306&amp;only=1
Автор: Вертер
Дата: 30.06.05


может проглотит и даже опции командной строки (и выкинет как ненужные)...

С поиском в path немного сложнее может быть...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.