1

Тема: Проблема зі створенням директорії в С++

як створити директорію по шляху "file\\" з іменем "file1", який зберігається в змінній "name"?

основна думка така
   

CreateDirectory("file\\"+name,NULL);

2

Re: Проблема зі створенням директорії в С++

Почнемо з того, що в C++ немає стандартної функції для створення директорій, ви користуєтеся певною сторонньою бібліотекою. А МИ НЕ ТЕЛЕПАТИ відгадувати, якою саме.
По-друге, рядків в C++ багато різних. І якщо тип "file\\" очевидний, то тип name ви не вказали, а МИ НЕ ТЕЛЕПАТИ.
І по-третє, ви не вказали, який результат у вашої спроби. Ми, звісно, можемо спробувати відгадати, але, з огляду на зазначені вище особливості, опишіть результати.

Подякували: Krip4yk1

3 Востаннє редагувалося Krip4yk (27.03.2014 16:14:10)

Re: Проблема зі створенням директорії в С++

koala написав:

Почнемо з того, що в 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)'

4

Re: Проблема зі створенням директорії в С++

1. Так, WinAPI.
2, 3. Як я вже казав, рядки (стрічки) бувають різні. Те, що в лапках - char * і додається відповідно; name - std::string. При додаванні все перетворюється на std::string. А функція вимагає LPCTSTR - тобто, в першому наближенні, char *. Отже, ви маєте якось перетворити свій string на char *. Найкраще - зібравши повну адресу в окрему змінну, для читаності. Самі впораєтеся?

Подякували: Krip4yk1

5

Re: Проблема зі створенням директорії в С++

koala написав:

1. Так, WinAPI.
2, 3. Як я вже казав, рядки (стрічки) бувають різні. Те, що в лапках - char * і додається відповідно; name - std::string. При додаванні все перетворюється на std::string. А функція вимагає LPCTSTR - тобто, в першому наближенні, char *. Отже, ви маєте якось перетворити свій string на char *. Найкраще - зібравши повну адресу в окрему змінну, для читаності. Самі впораєтеся?

гадаю, що ні.
я не так добре знаю ще С++.
та і не завжди ще все розумію. Я взагалі в школі вчусь))

6

Re: Проблема зі створенням директорії в С++

можеш ще переглянути цю мою тему.
http://replace.org.ua/post/23279/#p23279

7

Re: Проблема зі створенням директорії в С++

    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'

8

Re: Проблема зі створенням директорії в С++

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'

9

Re: Проблема зі створенням директорії в С++

Я б вам тоді порадив виконати 3-4 завдання з рядками - як із C-рядками, так і з C++-ними std::string. Там багато підводних каменів, всі отак одразу не опишеш.

Подякували: Krip4yk1

10

Re: Проблема зі створенням директорії в С++

Ну і розберіться, чим проголошення функції від виклику відрізняється.

11

Re: Проблема зі створенням директорії в С++

koala написав:

Я б вам тоді порадив виконати 3-4 завдання з рядками - як із C-рядками, так і з C++-ними std::string. Там багато підводних каменів, всі отак одразу не опишеш.

мені хоча б відповідь на початкове питання((

12 Востаннє редагувалося koala (27.03.2014 17:09:15)

Re: Проблема зі створенням директорії в С++

string directoryName = "file\\" + name;
CreateDirectory( directoryName.c_str(), NULL );
Подякували: Krip4yk1

13

Re: Проблема зі створенням директорії в С++

Гаразд поставлю питання по-іншому.

Я зараз роблю гру. Для цього мені потрібні Сейви.
Як записати я зробив. Але мені потрібно створити папку з іменем користувача, щоб все було згруповано. І в цій папці з іменем користувача створити файл з іменем користувача .txt з данними.
Потім ці данні взяти при новій грі, або (якщо той відмовиться) створити нового користувача або обнулити цього.

14

Re: Проблема зі створенням директорії в С++

koala написав:
string directoryName = "file\\" + name;
CreateDirectory( directoryName.c_str(), NULL );

дякую!