PDA

View Full Version : سوال: چگونگی ایجاد فولدرهای متعدد با استفاده از برنامه نویسیC++‎



daneshjoo91
دوشنبه 07 فروردین 1391, 20:44 عصر
میخواستم برنامه ای به زبان سی پلاس پلاس بنویسم که با استفاده از اون بتونم هر جایی که دلم خواست یک فولدر ایجاد کنم و برنامه قابلیت اینو داشته باشه که اگه خواستم دوباره بتونم یه فولدر جدید داخل فولدر ایجاد شده ، درست کنم . اما اصلا نمی دونم از کجا باید شروع کنم ؟ دوستان اگر میتونند منو راهنمایی کنند.

amin1softco
دوشنبه 07 فروردین 1391, 21:26 عصر
بابا ویروس نویس بابا این کاره
ساده ترین راهش دستور system بعدشم با کامند md هر چقدر فولدر که بخواهی در ویندوز می تونی ایجاد کنی یک راه دیگش استفاده از توابع کرنل ویندوزه البته تست نکردم...

system("md" + masir);

حامد مصافی
دوشنبه 07 فروردین 1391, 22:45 عصر
به جای md ینویسید mkdir و بعد از آن یک فاصله درج کنید

mehdi.mousavi
سه شنبه 08 فروردین 1391, 12:23 عصر
میخواستم برنامه ای به زبان سی پلاس پلاس بنویسم که با استفاده از اون بتونم هر جایی که دلم خواست یک فولدر ایجاد کنم و برنامه قابلیت اینو داشته باشه که اگه خواستم دوباره بتونم یه فولدر جدید داخل فولدر ایجاد شده ، درست کنم . اما اصلا نمی دونم از کجا باید شروع کنم ؟ دوستان اگر میتونند منو راهنمایی کنند.

سلام.
اگر در Windows قراره اینکارو کنید، می تونید از SHCreateDirectoryEx استفاده کنید:

SHCreateDirectoryEx(NULL, _T("d:\\folder1\\folder2"), NULL);

(فراموش نکنید فایل "Shlobj.h" رو include کنید).

اگر مایلید تا کدتون Portable باشه، می تونید از Boost File System Library (http://www.boost.org/doc/libs/1_40_0/libs/filesystem/doc/index.htm) استفاده کنید. استفاده از md یا mkdir (تفاوتی نداره) این خطر رو در پی داره که به کاربر اجازه میده، فایلی اجرایی با نام مشابه در کنار برنامه شما قرار بده و کد شما ناخواسته اونو اجرا کنه...

موفق باشید.

daneshjoo91
پنج شنبه 10 فروردین 1391, 19:09 عصر
با توجه به راهنمایی دوستان قطعه کد زیر رو نوشتمو تو کامپایلر بورلند سی پلاس پلاس امتحانش کردم.کدم اینه:

#include<iostream.h>
#include<conio.h>
int main(){
system(mkdir d:\\folder1);
getch();
return 0;
}
اما ارورای زیر رو داد:

Compiling NONAME00.CPP:
Error NONAME00.CPP 4: Call to undefined function 'system' in function main()
Error NONAME00.CPP 4: Undefined symbol 'mkdir' in function main()
Error NONAME00.CPP 4: Function call missing ) in function main()
Error NONAME00.CPP 4: Illegal character '\' (0x5c) in function main()
Error NONAME00.CPP 4: Illegal character '\' (0x5c) in function main()

حالا من چه جوری این ارورا رو برطرف کنم؟مثلا اگر بخوام یه فولدر تو درایو دیم ایجاد کنم باید چیکار کنم؟

حامد مصافی
پنج شنبه 10 فروردین 1391, 19:27 عصر
system("mkdir d:\\folder1");

Ananas
جمعه 11 فروردین 1391, 03:12 صبح
ممنون از دوستان. من برای program files خواسم پوشه بسازم اول نمیشد بخاطر جاخالی بین دوتا کلمه بعد فقط آدرس رو یه گیومه ی دیگه بهش اضافه کردم درست شد. اینطوری:
system("mkdir \"c:\\Program Files\\My________________Folder\"");
و یا فقط program files اینطوری :

system("mkdir c:\\\"Program Files\"\\My________________Folder");

daneshjoo91
جمعه 11 فروردین 1391, 22:39 عصر
دوست عزیز ظاهرا مشکل شما تو ایجاد فولدر حل شده. اگه امکان داره منم راهنمایی کنید تا مشکلمو حل کنم.
قطعه کد من اینطوری بود:

#include<iostream.h>
#include<conio.h>

int main(){
system("mkdir d:\\new folder");
getch();
return 0;
}
اما این ارورو داد:

Compiling NONAME00.CPP:
Error NONAME00.CPP 5: Call to undefined function 'system' in function main()

فک می کنم مشکل از هدر فایلیه که باید اینکلود میکردمو و نکردم. شما می دونید چه هدر فایلیه؟
ایمیل من اینه:
mousavi_delaram@yahoo.com
اگه امکان داره کدتو برام بفرست.

modirmasool
شنبه 12 فروردین 1391, 01:04 صبح
استفاده از md یا mkdir (تفاوتی نداره) این خطر رو در پی داره که به کاربر اجازه میده، فایلی اجرایی با نام مشابه در کنار برنامه شما قرار بده و کد شما ناخواسته اونو اجرا کنه...



میشه این مورد رو بیشتر توضیح بدید؟ به نظر جالب میاد.

Ananas
شنبه 12 فروردین 1391, 03:37 صبح
دوست عزیز ظاهرا مشکل شما تو ایجاد فولدر حل شده. اگه امکان داره منم راهنمایی کنید تا مشکلمو حل کنم.
قطعه کد من اینطوری بود:

#include<iostream.h>
#include<conio.h>

int main(){
system("mkdir d:\\new folder");
getch();
return 0;
}
اما این ارورو داد:

Compiling NONAME00.CPP:
Error NONAME00.CPP 5: Call to undefined function 'system' in function main()

فک می کنم مشکل از هدر فایلیه که باید اینکلود میکردمو و نکردم. شما می دونید چه هدر فایلیه؟
ایمیل من اینه:
mousavi_delaram@yahoo.com
اگه امکان داره کدتو برام بفرست.
باید stdlib.h رو داشته باشی. اون رو به برنامه include کن. تابع system رو من تو این فایل دارم. قائدتا باید همراه c++ ای که داری باشه فکر نمیکنم لازم باشه دانلود کنی. ولی برات ایمیلش میکنم. راستی برای new folder هم احتمالا مثل program file که وسطشون space دارن همون مشکل پیش بیاد که تو پست قبلی راه حلشو نوشتم.

jblaox
سه شنبه 25 تیر 1392, 00:36 صبح
سلام.
اگر در Windows قراره اینکارو کنید، می تونید از SHCreateDirectoryEx استفاده کنید:

SHCreateDirectoryEx(NULL, _T("d:\\folder1\\folder2"), NULL);

(فراموش نکنید فایل "Shlobj.h" رو include کنید).

اگر مایلید تا کدتون Portable باشه، می تونید از Boost File System Library (http://www.boost.org/doc/libs/1_40_0/libs/filesystem/doc/index.htm) استفاده کنید. استفاده از md یا mkdir (تفاوتی نداره) این خطر رو در پی داره که به کاربر اجازه میده، فایلی اجرایی با نام مشابه در کنار برنامه شما قرار بده و کد شما ناخواسته اونو اجرا کنه...

موفق باشید.

سلام
الان یک برنامه نوشتم با استفاده از این کد
انداختمش داخل یک حلقه و گفتم 100 پوشه درست کن داخل یک پوشه مثل زیر :

c:\test\k1
c:\test\k2
c:\test\k3
c:\test\k4
c:\test\k5
c:\test\k6
c:\test\k7

جالب نتوانست این کار بکنه ، تازه بعد از پایان حلقه هم پوشه ها خود به خود پاک میشود !!!!

سیستم 16 گیگ رم با 8 هسته 3.2 اینتل ، سیتم عامل هم win7

بسی در شگفتی عظیم ، نتوانستن به کنار ، در عجبیم از این پاک شدن خودکار هستیم !!!