Изучение интерфейса прикладного программирования Win32, разработка приложения, демонстрирующего возможности ОС по работе с файлами

Автор работы: Пользователь скрыл имя, 28 Марта 2012 в 18:55, курсовая работа

Описание

В данной пояснительной записке приведено описание алгоритма и исходного кода программы, демонстрирующей возможности ОС по работе с файлами. Разработаны схемы алгоритмов решения задачи. В среде Microsoft Visual Studio 2005 (C++) разработана и отлажена программа, реализующая представленные алгоритмы. Также представлены результаты решения контрольных примеров, выполненные с помощью разработанной программы.
В приложении приведён текст программы.

Содержание

Описание программы
1.1. Общие сведения о файлах
1.2. Общие сведения о программе
1.3. Функциональное назначение
1.4. Описание логической структуры
1.5. Структурная схема основной программы
1.6. Описание элементов программы
2. Программа в процессе работы
2.1. Создание и редактирование файлов
2.2. Копирование, переименование и удаление файлов
2.3. Поиск файлов
2.4. Просмотр и изменение атрибутов файлов
2.5. Создание ссылок на файлы
2.6. Получение информации о файле
3. Заключение
4. Список используемой литературы
5. Приложение

Работа состоит из  1 файл

ПЗ по ОС.doc

— 652.00 Кб (Скачать документ)

                                                                                                  SendMessage(GetDlgItem(hwnd,IDC_EDIT2),EM_REPLACESEL,0,(LPARAM)b);

                                                                                                  CloseHandle(hF);

                                                                                    }

                                                                                    else

                                                                                    {

                                                                                                  CloseHandle(hF);

                                                                                                  MessageBox(hwnd,"Невозможно прочитать файл!","Ошибка",MB_OK);

                                                                                    }

                                                        }

                                                        break;

                                          }

                                          case ID_RENAME:

                                                        {

                                                                      if(GetWindowText(GetDlgItem(hwnd,IDC_EDIT1),buf,512)!=NULL)

                                                                      {

                                                                                    DialogBox(0,MAKEINTRESOURCE(IDD_DIALOG3),hwnd,MyDlgProc);

                                                                                    SetWindowText(GetDlgItem(hwnd,IDC_EDIT1),buffer);

                                                                                    SetWindowText(GetDlgItem(hwnd,IDC_EDIT2),0);             

                                                                      }

                                                                      else

                                                                                    MessageBox(hwnd,"Не загружен файл!","Ошибка",MB_OK);

                                                                      break;

                                                        }

                                          case ID_RENAME_1:

                                                        {                                                                      GetWindowText(GetDlgItem(hwnd,IDC_EDIT1_3),buffer,512);

                                                                      if(MoveFile(buf,buffer))

                                                                      {

                                                                                    MessageBox(hwnd,"Файл успешно переименован!","Готово",MB_OK);

                                                                                    EndDialog(hwnd,0);

                                                                      }

                                                                      else

                                                                                    MessageBox(hwnd,"Введите имя файла!","Ошибка",MB_OK);

                                                                      break;

                                                        }

                                          case ID_COPY:

                                                        {                                                                      if(GetWindowText(GetDlgItem(hwnd,IDC_EDIT1),buf,512)!=NULL)

                                                                                    DialogBox(0,MAKEINTRESOURCE(IDD_DIALOG2),hwnd,MyDlgProc);

                                                                      else

                                                                                    MessageBox(hwnd,"Не загружен файл!","Ошибка",MB_OK);

                                                                      break;

                                                        }

            case ID_COPY_1:

                                                        {                                                                      GetWindowText(GetDlgItem(hwnd,IDC_EDIT1_2),buffer,512);

                                                                      if(CopyFile(buf,buffer,FALSE))

                                                                      {

                                                                                    MessageBox(hwnd,"Файл успешно скопирован!","Готово",MB_OK);

                                                                                    SetWindowText(GetDlgItem(hwnd,IDC_EDIT2),0);

                                                                                    EndDialog(hwnd,0);

                                                                      }

                                                                      else

                                                                                    MessageBox(hwnd,"Введите имя файла!","Ошибка",MB_OK);

                                                                      break;

                                                        }

                                          case ID_ATTRIB:

                                                        {

                                                                      char b[512];

                                                                      EnableWindow(GetDlgItem(hwnd,IDC_EDIT2),false);                                                                      if(GetWindowText(GetDlgItem(hwnd,IDC_EDIT1),buf,512)==NULL)

                                                                                    MessageBox(hwnd,"Не загружен файл!","Ошибка",MB_OK);

                                                                      else

                                                                      {

                                                                                    SetWindowText(GetDlgItem(hwnd,IDC_EDIT2),0);

                                                                                    strcpy(b,"");

                                                                                    DWORD dwFileAttributes=GetFileAttributes(buf);

                                                                                    if(dwFileAttributes & FILE_ATTRIBUTE_READONLY)

                                                                                                  strcat(b,"Файл только для чтения\r\n");

                                                                                    if(dwFileAttributes & FILE_ATTRIBUTE_SYSTEM)

                                                                                                  strcat(b,"Файл системный\r\n");

                                                                                    if(dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)

                                                                                                  strcat(b,"Файл скрытый\r\n");

                                                                                    if(dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE)

                                                                                                  strcat(b,"Файл архивный\r\n");

                                                                                    if(dwFileAttributes & FILE_ATTRIBUTE_NORMAL)

                                                                                                  strcat(b,"Файл не имеет атрибутов\r\n");                                                                                    SendMessage(GetDlgItem(hwnd,IDC_EDIT2),EM_REPLACESEL,0,(LPARAM)b);

                                                                      }

                                                                      break;

                                                        }

                                          case IDC_RADIO1:

                                                        {

                                                                      DWORD dwFileAttributes=SetFileAttributes(buf,FILE_ATTRIBUTE_READONLY);

                                                                      break;

                                                        }

                                          case IDC_RADIO2:

                                                        {

                                                                      DWORD dwFileAttributes=SetFileAttributes(buf,FILE_ATTRIBUTE_SYSTEM);

                                                                      break;

                                                        }

                                          case IDC_RADIO3:

                                                        {

                                                                      DWORD dwFileAttributes=SetFileAttributes(buf,FILE_ATTRIBUTE_HIDDEN);

                                                                      break;

                                                        }

                                          case IDC_RADIO4:

                                                        {

                                                                      DWORD dwFileAttributes=SetFileAttributes(buf,FILE_ATTRIBUTE_ARCHIVE);

                                                                      break;

                                                        }

                                          case ID_NORMAL:

                                                        {

                                                                      DWORD dwFileAttributes=SetFileAttributes(buf,FILE_ATTRIBUTE_NORMAL);

                                                                      break;

                                                        }

                                          case ID_INFO:

                                                        {

                                                                      char b[512];

                                                                      EnableWindow(GetDlgItem(hwnd,IDC_EDIT2),false);

                                                                      SetWindowText(GetDlgItem(hwnd,IDC_EDIT2),0);

                                                                      GetWindowText(GetDlgItem(hwnd,IDC_EDIT1),buf,512);

                                                                      if((hF = CreateFile(buf,0,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL))==INVALID_HANDLE_VALUE)

                                                                                    MessageBox(hwnd,"Не загружен файл!","Ошибка",MB_OK);

                                                                      else

                                                                      if(GetFileInformationByHandle(hF,&bhfi))

                                                                      {

                                                                                    for(int i=0;i<sizeof(b);*(b+i)=0,i++);                                                                                    FileTimeToSystemTime(&(bhfi.ftCreationTime),&st);

                                                                                    sprintf(b,"%s\r\nФайл создан: %d.%d.%d  %d:%d",buf,st.wDay,st.wMonth,st.wYear,st.wHour+4,st.wMinute);                        SendMessage(GetDlgItem(hwnd,IDC_EDIT2),EM_REPLACESEL,0,(LPARAM)b);

                                                                                    for(int i=0;i<sizeof(b);*(b+i)=0,i++);

                        FileTimeToSystemTime(&(bhfi.ftLastWriteTime),&st);

                                                                                    sprintf(b,"\r\nИзменен: %d.%d.%d  %d:%d",st.wDay,st.wMonth,st.wYear,st.wHour+4,st.wMinute);                        SendMessage(GetDlgItem(hwnd,IDC_EDIT2),EM_REPLACESEL,0,(LPARAM)b);

                        for(int i=0;i<sizeof(b);*(b+i)=0,i++);                                                                                    FileTimeToSystemTime(&(bhfi.ftLastAccessTime),&st);

                                                                                    sprintf(b,"\r\nВремя последнего доступа: %d.%d.%d  %d:%d",st.wDay,st.wMonth,st.wYear,st.wHour+4,st.wMinute);                        SendMessage(GetDlgItem(hwnd,IDC_EDIT2),EM_REPLACESEL,0,(LPARAM)b);

                                                                                    for(int i=0;i<sizeof(b);*(b+i)=0,i++);

                        if((dwFileSize = GetFileSize(hF, NULL))==-1)

                                                                                                  MessageBox(hwnd,"Невозможно определить размер файла!!!","Ошибка",MB_OK);

                                                                                    else

                                                                                    {

                                                                                                  sprintf(b,"\r\nРазмер файла: %d байт",dwFileSize);                                                                                                  SendMessage(GetDlgItem(hwnd,IDC_EDIT2),EM_REPLACESEL,0,(LPARAM)b);

                                                                                    }

                                                                                    for(int i=0;i<sizeof(b);*(b+i)=0,i++);

                                                                      }

                                                                      break;

                                                        }

                                          case ID_SEARCH:

                                                        {

                                                        DialogBox(0,MAKEINTRESOURCE(IDD_DIALOG4),hwnd,MyDlgProc);

                                                        break;

                                                        }

Информация о работе Изучение интерфейса прикладного программирования Win32, разработка приложения, демонстрирующего возможности ОС по работе с файлами