Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
1

Проложение пути к файлу

11.11.2021, 21:19. Показов 5424. Ответов 53
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите какими командами, нужно воспользоваться для возможности прописывания пути файла (диск и файл), для изменения его?
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
#include <iostream>                                   
#include <cstdio>                                     
#include <string>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    // возможность выбрать файл с любого диска
 
 
    // Возможность вносить изменения выбранного нами файла
    string god = "Год";
    string mesiac = "Месяц";
    string den = "День";
    string fale = "Файл";
    int chas, minuta, secunda;
 
    cout << "Введите название файла: ";
    cin >> fale;
    cout << "Введите год: ";
    cin >> god;
    cout << "Введите месяц: ";
    cin >> mesiac;
    cout << "Введите день: ";
    cin >> den;
    cout << "Введите час: ";
    cin >> chas;
    cout << "Введите минута: ";
    cin >> minuta;
    cout << "Введите секунды: ";
    cin >> secunda;
 
    system("pause");
    return 0;
}
Добавлено через 27 минут
Не много переделала:
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
#include <iostream>                                   
#include <cstdio>                                     
#include <string>
#include "Маскрировка.h"
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    string god = "Год";
    string mesiac = "Месяц";
    string den = "День";
    string file = "Файл";
    int chas, minuta, secunda, result;
 
    // возможность выбрать файл с любого диска
    char oldname[] = ".txt";
    char newname[] = ".txt";
 
    cout << "Введите старое название файла: ";
    cin >> oldname;
    cout << "Введите новое название файла: ";
    cin >> newname;
 
    // Возможность вносить изменения выбранного нами файла
    cout << "Введите год: ";
    cin >> god;
    cout << "Введите месяц: ";
    cin >> mesiac;
    cout << "Введите день: ";
    cin >> den;
    cout << "Введите час: ";
    cin >> chas;
    cout << "Введите минута: ";
    cin >> minuta;
    cout << "Введите секунды: ";
    cin >> secunda;
 
    result = rename(oldname, newname);
    if (result == 0)
        puts("Файл переименован");
    else
        perror("Файл не переименован");
    
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.11.2021, 21:19
Ответы с готовыми решениями:

указание пути к файлу
Столкнулся с проблемой указания пути к файлу. Написал функцию. Вызываю её так:...

Пробелы в пути к файлу
Проблема в том, что при указании пользователем пути с пробелом/ами программа вылетает. Не знаю, что...

Пробелы в пути к файлу
Доброго времени суток. Простой вопрос, понимаю..раньше заключал пути в кавычки, но сейчас,...

Переменная в пути к файлу
Есть код, точнее отрывок: char name; unsigned long size; GetUserName(name,&amp;size); ...

53
12 / 11 / 2
Регистрация: 06.11.2021
Сообщений: 33
11.11.2021, 23:28 2
Если хочешь поставить путь, то вот:
ofstream file("D:\\file.txt");


А вот как переименовать файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
#include <string>
#include <cstring>
#include <iostream>
 
using namespace std;
int main()
{
    string name = ("test.txt");
    string newname;
    getline(cin, newname);
    newname += ".txt";
    const char* newnamechar = newname.c_str();
    const char* namechar = name.c_str();
    int result;
    result = rename(namechar, newnamechar);
}
Как-то так
1
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
11.11.2021, 23:40  [ТС] 3
dmitriyscorp, Спасибо, я вот попыталась сделать ещё чтобы можно было поменять дату и время, правильно?
И куда это вставить? ofstream file("D:\\file.txt");
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
#include <iostream>                                   
#include <cstdio>                                     
#include <string>
#include "Маскрировка.h"
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    string god = "Год";
    string mesiac = "Месяц";
    string den = "День";
    string file = "Файл";
    string name = ("1111.txt");
    string newname;
    int chas, minuta, secunda;
 
    // возможность выбрать файл с любого диска
    getline(cin, newname);
    newname += ".txt";
    const char* newnamechar = newname.c_str();
    const char* namechar = name.c_str();
    int result;
    
    cout << "Введите новое название файла: ";
    cin >> newname;
 
    // Возможность вносить изменения выбранного нами файла
    cout << "Введите год: ";
    cin >> god;
    cout << "Введите месяц: ";
    cin >> mesiac;
    cout << "Введите день: ";
    cin >> den;
    cout << "Введите час: ";
    cin >> chas;
    cout << "Введите минута: ";
    cin >> minuta;
    cout << "Введите секунды: ";
    cin >> secunda;
 
    
    result = rename(namechar, newnamechar);
    return 0;
}
0
12 / 11 / 2
Регистрация: 06.11.2021
Сообщений: 33
11.11.2021, 23:44 4
Цитата Сообщение от Miristeri Посмотреть сообщение
я вот попыталась сделать ещё чтобы можно было поменять дату и время
Для этого тебе нужно удалить текст в файле и записать по новой


Цитата Сообщение от Miristeri Посмотреть сообщение
ofstream file("D:\\file.txt");
Это создает файл, так что вверху (или куда хочешь)
1
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
11.11.2021, 23:45  [ТС] 5
dmitriyscorp, А мне нужно не создавать, а уже существующему файлу изменять имя, дату и время создания

Добавлено через 54 секунды
dmitriyscorp, То есть я указываю сама файл, потом ему меняю имя, дату и время.
0
12 / 11 / 2
Регистрация: 06.11.2021
Сообщений: 33
11.11.2021, 23:47 6
Тогда, если не ошибаюсь, не ofstream, а просто fstream file("D:\\file.txt);
И потом с ним работаешь, вот только если файла не будет, он не создастся
И всегда закрывай файл (вот так: file.close(); )
1
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
12.11.2021, 00:08  [ТС] 7
dmitriyscorp, В чём можете проблема не понимаю
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
#include <iostream>                                   
#include <cstdio>                                     
#include <string>
#include "Маскрировка.h"
#include <fstream>;
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    fstream file("D:\\file.txt");
 
    string god = "Год";
    string mesiac = "Месяц";
    string den = "День";
    string file = "Файл";
    string name = ("1111.txt");
    string newname;
    int chas, minuta, secunda;
 
    // возможность выбрать файл с любого диска
    getline(cin, newname);
    newname += ".txt";
    const char* newnamechar = newname.c_str();
    const char* namechar = name.c_str();
    int result;
    
    cout << "Введите новое название файла: ";
    cin >> newname;
 
    // Возможность вносить изменения выбранного нами файла
    cout << "Введите год: ";
    cin >> god;
    cout << "Введите месяц: ";
    cin >> mesiac;
    cout << "Введите день: ";
    cin >> den;
    cout << "Введите час: ";
    cin >> chas;
    cout << "Введите минута: ";
    cin >> minuta;
    cout << "Введите секунды: ";
    cin >> secunda;
 
    
    result = rename(namechar, newnamechar);
    file.close();
    return 0;
}
Добавлено через 2 минуты
dmitriyscorp, Программа переименовывает файл, но возникает ошибка, но не меняется не дата не время

Добавлено через 4 минуты
dmitriyscorp, А как мне самой писать имя файла в консоле? Чтобы не было уже в программе написано какой файл должен редактироваться.

Добавлено через 5 минут
dmitriyscorp, Спасибо за помощь и объяснения.
0
12 / 11 / 2
Регистрация: 06.11.2021
Сообщений: 33
12.11.2021, 16:36 8
Вопрос уже решен или еще нужна помощь?
1
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
12.11.2021, 16:43  [ТС] 9
dmitriyscorp, Нужна помощь, не как всё не смогла решить, вот нужно чтобы программа работала правильно.
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
#include <iostream>                                   
#include <cstdio>                                     
#include <string>
#include "Маскрировка.h"
#include <fstream>;
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    fstream file("D:\\1234.txt");
 
    string god = "Год";
    string mesiac = "Месяц";
    string den = "День";
    string name = ("1111.txt");
    string newname;
    int chas, minuta, secunda;
 
    // возможность выбрать файл с любого диска
    getline(cin, newname);
    newname += ".txt";
    const char* newnamechar = newname.c_str();
    const char* namechar = name.c_str();
    int result;
    
    cout << "Введите новое название файла: ";
    cin >> newname;
 
    // Возможность вносить изменения выбранного нами файла
    cout << "Введите год: ";
    cin >> god;
    cout << "Введите месяц: ";
    cin >> mesiac;
    cout << "Введите день: ";
    cin >> den;
    cout << "Введите час: ";
    cin >> chas;
    cout << "Введите минута: ";
    cin >> minuta;
    cout << "Введите секунды: ";
    cin >> secunda;
 
    
    result = rename(namechar, newnamechar);
    file.close();
    return 0;
}
0
12 / 11 / 2
Регистрация: 06.11.2021
Сообщений: 33
12.11.2021, 16:52 10
Через минут 30 отправлю код
1
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
12.11.2021, 16:52 11
Цитата Сообщение от Miristeri Посмотреть сообщение
Нужна помощь
Выложите, пожалуйста, задание в том виде, в котором его дал преподаватель.
Есть факторы, заставляющие меня сомневаться, что вы делаете то, что попросил преподаватель.
1
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
12.11.2021, 16:55  [ТС] 12
dmitriyscorp, Хорошо, буду ждать и благодарна за помощь.

Добавлено через 2 минуты
lemegeton, Разработать и отладить процедуру изменения даты и времени создания указанного файла на заданные значения. Вход данные - имя файла, значения даты, времени. Выход данные - логическая переменная.
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
12.11.2021, 17:01 13
Цитата Сообщение от Miristeri Посмотреть сообщение
lemegeton, Разработать и отладить процедуру изменения даты и времени создания указанного файла на заданные значения. Вход данные - имя файла, значения даты, времени. Выход данные - логическая переменная.
Вот так понятнее.
Под разные операционные системы будет разная функция.
Под какую надо? Под Windows?
1
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
12.11.2021, 17:02  [ТС] 14
lemegeton, Под виндовс
0
12 / 11 / 2
Регистрация: 06.11.2021
Сообщений: 33
12.11.2021, 17:14 15
В общем и целом, вот решение:
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
#include <fstream>
#include <string>
#include <cstring>
#include <iostream>
 
using namespace std;
int main()
{
    
    string name; // старое имя
    string newname; // новое имя
    //вводим старое и новое имя
    cout << "OLDNAME" << endl;
    getline(cin, name);
    cout << "NEWNAME" << endl;
    getline(cin, newname);
    name += ".txt";
    newname += ".txt";
    const char* newnamechar = newname.c_str();
    const char* namechar = name.c_str();
    int result;
    result = rename(namechar, newnamechar);//переименовываем
    fstream file(newname);
    //вводим время
    int year, month, day, hour, min, sec;
    cout << "Input: year, month, day, hour, min, sec" << endl;
    cin >> year >> month >> day >> hour >> min >> sec;
    file << "Year:" << year << endl;
    file << "Month:" << month << endl;
    file << "Day:" << day << endl;
    file << "Hour:" << hour << endl;
    file << "Min:" << min << endl;
    file << "Sec:" << sec << endl;
}
1
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
12.11.2021, 17:25 16
Цитата Сообщение от Miristeri Посмотреть сообщение
Разработать и отладить процедуру изменения даты и времени создания указанного файла на заданные значения. Вход данные - имя файла, значения даты, времени. Выход данные - логическая переменная.

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
#include <iostream>
#include <fileapi.h>
#include <windows.h>
 
// процедура изменения даты и времени создания указанного файла на заданные значения. Вход данные - имя файла, значения даты, времени. Выход данные - логическая переменная
bool setFileTime(const std::string &filename,
                 unsigned long year, unsigned long month, unsigned long day,
                 unsigned long hour, unsigned long minute, unsigned long second, unsigned long millis) {
    SYSTEMTIME systemtime;
 
    systemtime.wYear = year;
    systemtime.wMonth = month;
    systemtime.wDay = day;
    systemtime.wHour = hour;
    systemtime.wMinute = minute;
    systemtime.wSecond = second;
    systemtime.wMilliseconds = millis;
 
    FILETIME filetime;
    SystemTimeToFileTime(&systemtime, &filetime);
 
    HANDLE handle = CreateFile(filename.c_str(), FILE_WRITE_ATTRIBUTES, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 
    return SetFileTime(handle,(LPFILETIME) &filetime,(LPFILETIME) NULL, (LPFILETIME) NULL);
}
 
int main() {
 
    std::string filename = R"(C:\temp\test.txt)";
    int year = 2000;
    int month = 1;
    int day = 2;
    int hour = 1;
    int minute = 1;
    int second = 1;
    int millis = 1;
 
    // время в GMT таймзоне
    setFileTime(filename, year, month, day, hour, minute, second, millis);
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
12.11.2021, 17:27  [ТС] 17
dmitriyscorp, Спасибо огромное Вам за помощь, всё заработало так как нужно было. Только вот вопрос про смену года, даты и время это нужно лезть в систему и там убирать галочку для возможности смены ? Если да я этого делать не буду и программа меня устраивает.
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
12.11.2021, 17:30 18
Цитата Сообщение от Miristeri Посмотреть сообщение
всё заработало так как нужно было
Обратите внимание, что код уважаемого dmitriyscorp не изменяет "даты и времени создания указанного файла на заданные значения".
Код лишь выводит значения, введенные с клавиатуры.
1
0 / 0 / 0
Регистрация: 05.10.2021
Сообщений: 156
12.11.2021, 17:33  [ТС] 19
lemegeton, Можете выложить мне свою программу в VS, а то чего то 28 ошибок
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
12.11.2021, 17:35 20
Цитата Сообщение от Miristeri Посмотреть сообщение
Можете выложить мне свою программу в VS, а то чего то 28 ошибок
У меня нет студии.
Что за ошибки?
1
12.11.2021, 17:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2021, 17:35
Помогаю со студенческими работами здесь

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

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

Получение пути к исполняемому файлу
Здравствуйте, Позвольте вопрос: 1)Как получить путь к исполняемому файлу ? То есть вот такая...

Не поддерживает русские буквы в пути к файлу
Путь с английскими буквами прекрасно работает, но вот если русские буквы есть в пути к файлу, то...

Из пути к файлу вывести только имя файла
Здравствуйте, учу немного язык С ++ и не могу написать для одной задачи код. Нужно с пути к файлу...

Процедура разбора полного пути к файлу, представленного строкой
Разработать процедуру (и вспомогательную программу) разбора заданной текстовой строки (задается...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru