Тема: Проблема зі створенням директорії в С++
як створити директорію по шляху "file\\" з іменем "file1", який зберігається в змінній "name"?
основна думка така
CreateDirectory("file\\"+name,NULL);
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Проблема зі створенням директорії в С++
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
як створити директорію по шляху "file\\" з іменем "file1", який зберігається в змінній "name"?
основна думка така
CreateDirectory("file\\"+name,NULL);
Почнемо з того, що в C++ немає стандартної функції для створення директорій, ви користуєтеся певною сторонньою бібліотекою. А МИ НЕ ТЕЛЕПАТИ відгадувати, якою саме.
По-друге, рядків в C++ багато різних. І якщо тип "file\\" очевидний, то тип name ви не вказали, а МИ НЕ ТЕЛЕПАТИ.
І по-третє, ви не вказали, який результат у вашої спроби. Ми, звісно, можемо спробувати відгадати, але, з огляду на зазначені вище особливості, опишіть результати.
Почнемо з того, що в C++ немає стандартної функції для створення директорій, ви користуєтеся певною сторонньою бібліотекою. А МИ НЕ ТЕЛЕПАТИ відгадувати, якою саме.
По-друге, рядків в C++ багато різних. І якщо тип "file\\" очевидний, то тип name ви не вказали, а МИ НЕ ТЕЛЕПАТИ.
І по-третє, ви не вказали, який результат у вашої спроби. Ми, звісно, можемо спробувати відгадати, але, з огляду на зазначені вище особливості, опишіть результати.
Гаразд. Використовую ці бібліотеки
#include <iostream>
#include <fstream>
#include <string.h>
#include <windows.h> я так зрозумів, що ця.
далі...
string name(наприклад)="file1";
і...
C:\Users\Àäìèíèñòðàòîð\Desktop\C++\fstream\fstream.cpp In function 'int main(int, char**)':
13 38 C:\Users\Àäìèíèñòðàòîð\Desktop\C++\fstream\fstream.cpp [Error] cannot convert 'std::basic_string<char>' to 'LPCSTR {aka const char*}' for argument '1' to 'WINBOOL CreateDirectoryA(LPCSTR, LPSECURITY_ATTRIBUTES)'
1. Так, WinAPI.
2, 3. Як я вже казав, рядки (стрічки) бувають різні. Те, що в лапках - char * і додається відповідно; name - std::string. При додаванні все перетворюється на std::string. А функція вимагає LPCTSTR - тобто, в першому наближенні, char *. Отже, ви маєте якось перетворити свій string на char *. Найкраще - зібравши повну адресу в окрему змінну, для читаності. Самі впораєтеся?
1. Так, WinAPI.
2, 3. Як я вже казав, рядки (стрічки) бувають різні. Те, що в лапках - char * і додається відповідно; name - std::string. При додаванні все перетворюється на std::string. А функція вимагає LPCTSTR - тобто, в першому наближенні, char *. Отже, ви маєте якось перетворити свій string на char *. Найкраще - зібравши повну адресу в окрему змінну, для читаності. Самі впораєтеся?
гадаю, що ні.
я не так добре знаю ще С++.
та і не завжди ще все розумію. Я взагалі в школі вчусь))
можеш ще переглянути цю мою тему.
http://replace.org.ua/post/23279/#p23279
char name[11]="file\\file1";
BOOL WINAPI CreateDirectory(LPCTSTR name,NULL);
C:\Users\Àäìèíèñòðàòîð\Desktop\C++\fstream\fstream.cpp In function 'int main(int, char**)':
13 46 C:\Users\Àäìèíèñòðàòîð\Desktop\C++\fstream\fstream.cpp [Error] expected identifier before '__null'
13 46 C:\Users\Àäìèíèñòðàòîð\Desktop\C++\fstream\fstream.cpp [Error] expected ',' or '...' before '__null'
char name[11]="file\\file1";
BOOL WINAPI CreateDirectory(LPCTSTR name,LPSECURITY_ATTRIBUTES NULL);
C:\Users\Администратор\Desktop\C++\fstream\fstream.cpp In function 'int main(int, char**)':
13 68 C:\Users\Администратор\Desktop\C++\fstream\fstream.cpp [Error] expected ',' or '...' before '__null'
Я б вам тоді порадив виконати 3-4 завдання з рядками - як із C-рядками, так і з C++-ними std::string. Там багато підводних каменів, всі отак одразу не опишеш.
Ну і розберіться, чим проголошення функції від виклику відрізняється.
Я б вам тоді порадив виконати 3-4 завдання з рядками - як із C-рядками, так і з C++-ними std::string. Там багато підводних каменів, всі отак одразу не опишеш.
мені хоча б відповідь на початкове питання((
string directoryName = "file\\" + name;
CreateDirectory( directoryName.c_str(), NULL );
Гаразд поставлю питання по-іншому.
Я зараз роблю гру. Для цього мені потрібні Сейви.
Як записати я зробив. Але мені потрібно створити папку з іменем користувача, щоб все було згруповано. І в цій папці з іменем користувача створити файл з іменем користувача .txt з данними.
Потім ці данні взяти при новій грі, або (якщо той відмовиться) створити нового користувача або обнулити цього.
string directoryName = "file\\" + name; CreateDirectory( directoryName.c_str(), NULL );
дякую!
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися