Форум программистов, компьютерный форум, киберфорум
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 24.11.2013
Сообщений: 46
1

Записать в данный файл короткие имена всех найденных файлов и даты их последней модификации. Вывести содержания файла

30.11.2013, 14:44. Просмотров 558. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста имеются коды . И еще надо - Записать в данный файл короткие имена всех найденных файлов и даты их последней модификации. Вывести содержания файла.
надо добавить и связать все вместе может кто то помочь в этом? используя функции winapi

Поиск первых 10 файлов doc:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <windows.h>
#include <string.h>
#include <stdio.h>
 
int main(int argc, char* argv[])
{
    HANDLE hFile;
    WIN32_FIND_DATA lpFile;
    SYSTEMTIME lpSys;
    int i=0,j=0;
    SetCurrentDirectory("C:\\My Documents\\");
    hFile=FindFirstFile(("*doc.*"),&lpFile);
    if(hFile!=INVALID_HANDLE_VALUE)
    {
    if (lpFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    {
    printf("directory\t");
    i++;
    }
    else
    {
    printf("file\t\t"); 
    j++;
    }
    FileTimeToSystemTime(&lpFile.ftLastWriteTime, &lpSys);
    printf("%s\t%d.%d.%d %d:%d\n",lpFile.cFileName,lpSys.wDay,
    lpSys.wMonth,lpSys.wYear, lpSys.wHour, lpSys.wMinute);
    }
    else
        printf("no");
    while(FindNextFile(hFile, &lpFile))
    {
        if (lpFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            printf("directory\t");
            i++;
        }
        else
        {
            printf("file\t\t"); 
            j++;
        }       
        FileTimeToSystemTime(&lpFile.ftLastWriteTime, &lpSys);
        printf("%s\t\t%d.%d.%d %d:%d\n",lpFile.cFileName,lpSys.wDay,
        lpSys.wMonth,lpSys.wYear, lpSys.wHour, lpSys.wMinute);
        if(j==10) break;
    }
 
    FindClose(hFile);
    printf("count fo directories %d\t count of files %d\n",i,j);
    system("pause");
    return 0;
}
Удалось также создавать файл doc:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{
HANDLE hFile;
SetCurrentDirectory("C:\\My Documents");
hFile = CreateFile("lab21.doc",GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
 
 
 
 
 
system("pause");
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2013, 14:44
Ответы с готовыми решениями:

Измененение даты последней модификации файла
Нужно дате изменения присвоить дату создания. Вот кусок кода, подскажите, пожалуйста, что я делаю...

Записать в текстовый файл даты создания и имена файлов, размер которых меньше заданного
Добрый вечер, можно пожалуйста попросить Вас решить задачку, кому не сложно. Буду очень благодарен....

Записать список всех файлов из каталога К, имена которых заканчиваются на цифру, в файл F
Помогите пожалуйста зделать 1 задание есть небольшие догадки но он записывает не то что нужно в...

Записать имена и размер всех файлов каталога К в файл F (выбрать файлы с размером менее 100 Kb)
Записать имена и размер всех файлов каталога К в файл F (выбрать файлы с размером менее 100 Kb)....

3
83 / 83 / 26
Регистрация: 04.10.2012
Сообщений: 341
01.12.2013, 05:14 2
Я так понимаю, записать все это надо в формате DOC. В таком случае остается либо использовать COM (а это подразумевает наличие Word на компьютере), либо изучать структуру DOC-файлов.
0
0 / 0 / 1
Регистрация: 24.11.2013
Сообщений: 46
01.12.2013, 17:07  [ТС] 3
У меня получается создать файл а также записать туда информацию, но читать этот файл отказывается, может найдете ошибку посмотрите пожалуйста.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
 
    
    
    char filename[MAX_PATH] = {0};
    char cWriteData[80] = {0};
     
    cout<<"Enter file to write: ";
    cin.getline(filename,sizeof(filename));//Получаем имя
    SetCurrentDirectory("C:\\My Documents");
    HANDLE hFile = CreateFile(filename,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
    
/*
Этой функцией открываем файл по имени filename с аттрибутом для записи, и закрывая для других доступ к записи, без аттрибутов безопасности, создавая файл всегда, файл с атрибутами нормал, и без шаблона
*/
 
    if(hFile>0){//Если файл открылся
        cout<<"File succesful open!"<<endl<<"Enter input to file."<<endl<<"For exit input 'Q' and press 'ENTER'"<<endl;//Выводим user-friendly подсказку
 
        do{
            cin.getline(cWriteData,80);
            if(strcmp(cWriteData,"Q")){//Если ввели не Q
                DWORD dwB;
                WriteFile(hFile,cWriteData,strlen(cWriteData),&dwB,NULL);//Пишем в файл. dwB - это буфер, где будет указано кол-во записанных байт
                WriteFile(hFile,"\r\n",strlen("\r\n"),&dwB,NULL);
                
            }
        }while(strcmp(cWriteData,"Q"));//Пока нет Q
 
    }else
        cout<<"File error open!";
    CloseHandle(hFile);
    cout<<"Input name of file: ";
    char szFileName[MAX_PATH];
    cin.getline(szFileName,sizeof(szFileName));
    HANDLE hFile = CreateFile(szFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_ALWAYS,NULL,NULL);
    DWORD dwFileSize = GetFileSize(hFile,NULL);
    char *szFile = (char *)GlobalAlloc(GMEM_ZEROINIT,dwFileSize+1);
    DWORD dwReaden;
    ReadFile(hFile,szFile,dwFileSize,&dwReaden,NULL);
     cout<<"Content file: "<<endl<<szFile;
    CloseHandle(hFile);//Закрывем файл
    GlobalFree(szFile);
    system("pause");
    return 0;
}
0
Brainsbreaker
890 / 368 / 51
Регистрация: 01.02.2011
Сообщений: 1,586
03.12.2013, 02:14 4
Чем компилишь?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2013, 02:14

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Из строк текстового файла получить имена файлов и записать их в отдельный текстовый файл
Доброго времени суток, имеется текстовый файл, порядка 7-ми или 8-ми тысяч строк...

Получить значения даты и времени из всех TXT-файлов и записать их в лог-файл
Перенесено из темы &quot;Полезные BAT_CMD скрипты&quot;. Привет всем. Может не по теме, но все же... У...

Как записать в файл размеры найденных файлов?
Нужно вывести в файл названия найденных файлов и их размеры find $4 -user $3 -size +$1 -size -$2 &gt;...

Записать в файл список найденных в указанной папке и подпапках файлов меньших указанного размера
Пользователь вводит адрес папки и размер в байтах. Программа записывает в результирующий файл...

Записать имена всех файлов, их размер и местоположение на дисках C:D
Пример такой текстовый файл Курсовая.doc (5Мб) C:\Desktop\work\курсовая.doc и таким...

Вывести имена всех файлов во всех подкаталогах данного каталога
Задание: собрать в один файл имена всех файлов во всех подкаталогах данного каталога


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.