Форум программистов, компьютерный форум CyberForum.ru

Помощь функциями GetFileAttributes и GetFileSize. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.71
Kurvochka
0 / 0 / 0
Регистрация: 10.03.2011
Сообщений: 16
10.12.2011, 11:48     Помощь функциями GetFileAttributes и GetFileSize. #1
Добрый день всем! Кто знает помогите пожалуйста с функциями GetFileAttributes и GetFileSize. Нужны полностью рабочие коды программ, что б только имя файла менять уже. Заранее всем откликнувшимся СПАСИБО!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2011, 11:48     Помощь функциями GetFileAttributes и GetFileSize.
Посмотрите здесь:

C++ Помощь при работе с функциями в Си++
Работа с функциями C++
Как пользоваться функцией GetFileSize() ? C++
C++ Хэлп с функциями
C++ Калькулятор с функциями
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dickivs
 Аватар для dickivs
46 / 46 / 6
Регистрация: 25.11.2011
Сообщений: 267
10.12.2011, 12:08     Помощь функциями GetFileAttributes и GetFileSize. #2
Цитата Сообщение от Kurvochka Посмотреть сообщение
Добрый день всем! Кто знает помогите пожалуйста с функциями GetFileAttributes и GetFileSize. Нужны полностью рабочие коды программ, что б только имя файла менять уже. Заранее всем откликнувшимся СПАСИБО!
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
// fileattr.cpp
 
#include <windows.h>
#include <iostream>
using namespace std;
 
void ShowAttributes(DWORD attributes)
// Shows the file attributes on stdout
{
   if (attributes & FILE_ATTRIBUTE_ARCHIVE)
      cout << "   archive\n";
   if (attributes & FILE_ATTRIBUTE_DIRECTORY)
      cout << "   directory\n";
   if (attributes & FILE_ATTRIBUTE_HIDDEN)
      cout << "   hidden\n";
   if (attributes & FILE_ATTRIBUTE_NORMAL)
      cout << "   normal\n";
   if (attributes & FILE_ATTRIBUTE_READONLY)
      cout << "   read only\n";
   if (attributes & FILE_ATTRIBUTE_SYSTEM)
      cout << "   system\n";
   if (attributes & FILE_ATTRIBUTE_TEMPORARY)
      cout << "   temporary\n";
}
 
void main()
{
   char filename[MAX_PATH];
   DWORD attributes;
   
   cout << "Enter filename: ";
   cin >> filename;
   attributes = GetFileAttributes(filename);
   ShowAttributes(attributes);
}
 Комментарий модератора 
Используйте теги форматирования кода!
Kurvochka
0 / 0 / 0
Регистрация: 10.03.2011
Сообщений: 16
10.12.2011, 15:58  [ТС]     Помощь функциями GetFileAttributes и GetFileSize. #3
При выполнении программа показывает все типы файлов в столбик но не определяет конкретно по заданному имени файла.

Добавлено через 2 часа 7 минут
А не работает, извините я не разобралась до конца. Спасибо еще раз! Может еще и GetFileSize кто-то знает как сделать?
dickivs
 Аватар для dickivs
46 / 46 / 6
Регистрация: 25.11.2011
Сообщений: 267
10.12.2011, 16:13     Помощь функциями GetFileAttributes и GetFileSize. #4
Цитата Сообщение от Kurvochka Посмотреть сообщение
Добрый день всем! Кто знает помогите пожалуйста с функциями GetFileAttributes и GetFileSize. Нужны полностью рабочие коды программ, что б только имя файла менять уже. Заранее всем откликнувшимся СПАСИБО!
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
// filesize.cpp
 
#include <windows.h>
#include <iostream>
using namespace std;
 
void main()
{
   HANDLE fileHandle;
   char filename[1000];
   DWORD sizeLo, sizeHi;
   
   // get file name
   cout << "Enter filename: ";
   cin >> filename;
   
   // open the file
   fileHandle = CreateFile(filename, GENERIC_READ,
      FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
   if (fileHandle == INVALID_HANDLE_VALUE)
   {
      cout << "Error number " << GetLastError()
         << endl;
      return;
   }
   
   // report file size
   else
   {
      sizeLo = GetFileSize(fileHandle, &sizeHi);
      cout << "Size (low 32 bits) = " << sizeLo
         << endl;
      cout << "Size (high 32 bits) = " << sizeHi
         << endl;
   }
   CloseHandle(fileHandle);
}
Kurvochka
0 / 0 / 0
Регистрация: 10.03.2011
Сообщений: 16
10.12.2011, 17:00  [ТС]     Помощь функциями GetFileAttributes и GetFileSize. #5
Спасибо Вам огромное з помощь! А можно тогда еще у Вас спросить? Есть 2 программы: одна создает файл и пишет в него ФИО а вторая читает из него. Вот нужно дописать 2 программу так, что б она выдавала ошибку если файла не существует.
Листинг программы которая создает файл и пишет ФИО

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
54
55
56
57
58
#include <windows.h>
int main()
{
    HANDLE file1;
    file1 = CreateFile ("File1.txt",                                       
                        GENERIC_WRITE,                                   
                        0,                                                                 
                        0,                                                                 
                        OPEN_EXISTING,                                   
                        FILE_ATTRIBUTE_NORMAL,              
                        0                                                                  
                        );
    LPCVOID buffer;
    DWORD BytesBuf;
    LPDWORD BytesWritten;
    buffer = "FIO";
    BytesBuf = sizeof("FIO");
    WriteFile ( file1,
                buffer,
                BytesBuf,
                BytesWritten,
                0
                );
    CloseHandle(file1);
    return 0;
}
 
Листинг программы которая читает и в которой нужно добавить сообщение об ошибке если файл не создан:
 
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
    HANDLE file1;
     file1 = CreateFile ("File1.txt",                                
                        GENERIC_READ,                             
                        0,                                                         
                        0,                                                         
                        OPEN_EXISTING,                           
                        FILE_ATTRIBUTE_NORMAL,      
                        0                                                          
                        );
    LPTSTR buffer;
    DWORD BytesBuf;
    LPDWORD BytesRead;
    BytesBuf = sizeof("FIO");
    ReadFile ( file1,
                buffer,
                BytesBuf,
                BytesRead,
                0
                );
     CloseHandle(file1);
    cout<<buffer;
    cin.get();
    return 0;
}
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
10.12.2011, 17:31     Помощь функциями GetFileAttributes и GetFileSize. #6
Цитата Сообщение от Kurvochka Посмотреть сообщение
от нужно дописать 2 программу так, что б она выдавала ошибку если файла не существует.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <windows.h>
#include <stdio.h>
 
BOOL  file_exists(const TCHAR* filename) {
  WIN32_FIND_DATA info = {0};
  HANDLE fp = FindFirstFile(filename, &info);
  if(fp == INVALID_HANDLE_VALUE)
        return FALSE;
  FindClose(fp);
  return TRUE;
}
 
int main(void) {
  if(file_exists(TEXT("D:\\DLL\\Console.dll")))
        puts("File yes.");
  else
        puts("File not found !!!");
  getchar();
  return 0;
}
Kurvochka
0 / 0 / 0
Регистрация: 10.03.2011
Сообщений: 16
11.12.2011, 08:31  [ТС]     Помощь функциями GetFileAttributes и GetFileSize. #7
Спасибо всем кто помог мне!! Мир не без добрых людей!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2013, 15:47     Помощь функциями GetFileAttributes и GetFileSize.
Еще ссылки по теме:

GetFileAttributes C++
C++ GetFileSize
Помощь с функциями C++

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

Или воспользуйтесь поиском по форуму:
Korhall
 Аватар для Korhall
7 / 7 / 1
Регистрация: 02.03.2013
Сообщений: 69
21.12.2013, 15:47     Помощь функциями GetFileAttributes и GetFileSize. #8
Добрый день, коллеги.
Прошу помощи.
Скомпилировал варианты 1 и 2 программ с функцией GetFileAtribute.
Но в обоих вариантах VS 2012 выдал ошибку:

GetFileAtributes_API.cpp
c:\users\amon\documents\visual studio 2012\projects\getfileatributes_api\getfileatributes_api\getfileatributes_api.cpp(21): error C2664: CreateFileW: невозможно преобразовать параметр 1 из "char [1000]" в "LPCWSTR"
Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции

Как это исправить?
Yandex
Объявления
21.12.2013, 15:47     Помощь функциями GetFileAttributes и GetFileSize.
Ответ Создать тему
Опции темы

Текущее время: 18:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru