Вопрос
От: Морозов Дмитрий  
Дата: 02.07.02 10:58
Оценка:
Как получить полный путь к файлу, например "1.txt" и удалить его ?
Re: Вопрос
От: Toughpheeckouse Россия  
Дата: 02.07.02 11:13
Оценка:
Здравствуйте Морозов Дмитрий, Вы писали:

МД>Как получить полный путь к файлу, например "1.txt" и удалить его ?

Перечитай свой вопрос... а теперь переформулируй.... иначе будешь долго ждать ответа...
Думайте сами, решайте сами...
Re[2]: Вопрос
От: Морозов Дмитрий  
Дата: 02.07.02 11:53
Оценка:
Здравствуйте Toughpheeckouse, Вы писали:

T>Здравствуйте Морозов Дмитрий, Вы писали:


МД>>Как получить полный путь к файлу, например "1.txt" и удалить его ?

T>Перечитай свой вопрос... а теперь переформулируй.... иначе будешь долго ждать ответа...
Переформулирую есть файл C:\WINDOWS\Рабочий стол\"1.txt"
Нужно получить програмно путь к этому файлу и удалить его.
желательно MFS.
Заранее спасибо.
Re[3]: Вопрос
От: SergH Россия  
Дата: 02.07.02 13:50
Оценка:
Здравствуйте Морозов Дмитрий, Вы писали:

МД>>>Как получить полный путь к файлу, например "1.txt" и удалить его ?

T>>Перечитай свой вопрос... а теперь переформулируй.... иначе будешь долго ждать ответа...
МД>Переформулирую есть файл C:\WINDOWS\Рабочий стол\"1.txt"
МД>Нужно получить програмно путь к этому файлу и удалить его.
МД>желательно MFS.
МД>Заранее спасибо.

То ли ты чего-то большого не понимаешь, то ли я не понял твой вопрос... Если тебе известно, что где-то на компе есть файл "1.txt", но неизвестно, в каком он каталоге, то единственный способ найти его — поиск. Смотри FindFirstFile & Co. Но можно случайно найти несколько файлов..

Если тебе известно, что этот файл в текущем каталоге — GetCurrentDirectory.

Есть ещё функции GetSystemDirectory, GetWindowsDirectory, SHGetFolderPath — может тебя это интересует?

Если тебе известно, что он в C:\WINDOWS\Рабочий стол\ — в чём вопрос?
Делай что должно, и будь что будет
Re[4]: Вопрос
От: Морозов Дмитрий  
Дата: 04.07.02 12:41
Оценка:
Здравствуйте SergH, Вы писали:

SH>Здравствуйте Морозов Дмитрий, Вы писали:


МД>>>>Как получить полный путь к файлу, например "1.txt" и удалить его ?

T>>>Перечитай свой вопрос... а теперь переформулируй.... иначе будешь долго ждать ответа...
МД>>Переформулирую есть файл C:\WINDOWS\Рабочий стол\"1.txt"
МД>>Нужно получить програмно путь к этому файлу и удалить его.
МД>>желательно MFS.
МД>>Заранее спасибо.

SH>То ли ты чего-то большого не понимаешь, то ли я не понял твой вопрос... Если тебе известно, что где-то на компе есть файл "1.txt", но неизвестно, в каком он каталоге, то единственный способ найти его — поиск. Смотри FindFirstFile & Co. Но можно случайно найти несколько файлов..


SH>Если тебе известно, что этот файл в текущем каталоге — GetCurrentDirectory.


SH>Есть ещё функции GetSystemDirectory, GetWindowsDirectory, SHGetFolderPath — может тебя это интересует?


SH>Если тебе известно, что он в C:\WINDOWS\Рабочий стол\ — в чём вопрос?

Переформулирую как удалить любой файл с диска C: не указывая путь к файлу.
Re[5]: Вопрос
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 04.07.02 12:49
Оценка:
Здравствуйте Морозов Дмитрий, Вы писали:

МД>Здравствуйте SergH, Вы писали:


SH>>Здравствуйте Морозов Дмитрий, Вы писали:




SH>>Если тебе известно, что он в C:\WINDOWS\Рабочий стол\ — в чём вопрос?

МД>Переформулирую как удалить любой файл с диска C: не указывая путь к файлу.

Дык тебе уже отвечали — копай в сторону FindFirstFile, FindNextFile,FindClose .

Успехов!
Re[5]: Вопрос
От: Владислав Россия  
Дата: 05.07.02 10:26
Оценка: 4 (1)
Здравствуйте Морозов Дмитрий, Вы писали:

Я уже во втором форуме этот subj вижу, видимо очень надо.

МД>Переформулирую как удалить любой файл с диска C: не указывая путь к файлу.


Вот так:
где str — метка диска (например: "C:\\*" или "D:\\*"), file — имя файла (например: "1.txt").
Пример вызова: int i = FileMustDie ("C:\\*", "1.txt");
Возврат: 1 — нашли первый попавшийся файл 1.txt и убили его; 0 — не нашли ничего; -1 — не удалось удалить файл или открыть директорию.

int FileMustDie (char* str, char* file)
{
    int res = 0;
    int ResFind = 1;
    WIN32_FIND_DATA data;
    char tmp[MAX_PATH] = "";
    char deltmp[MAX_PATH] = "";

    memset (&data, 0, sizeof (LPWIN32_FIND_DATA));

    for (HANDLE handle = FindFirstFile (str, &data); handle != INVALID_HANDLE_VALUE && ResFind; ResFind = FindNextFile (handle, &data), *tmp = 0)
        if (data.cFileName[0] != '.')
        {
            strcat (tmp, str);
            tmp [strlen (str) - 1] = 0;
            strcat (tmp, data.cFileName);
            if (data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
            {
                strcpy (deltmp, tmp);
                strcat (deltmp, "\\*");
                if ((res = FileMustDie (deltmp, file)))
                {
                    FindClose (handle);
                    return res;
                }
                continue;
            }

            if (!strcmp (file, data.cFileName))
            {
                SetFileAttributes (tmp, FILE_ATTRIBUTE_NORMAL);
                if (!DeleteFile (tmp))
                {
                    FindClose (handle);
                    return -1;
                }
                return ++res;
            }
        }
    if (handle != INVALID_HANDLE_VALUE)
        FindClose (handle);
    return res;
}


Извиняй, что не на MFC.
Suum cuique (лат.)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.