PDA

View Full Version : حذف فایل از یک پوشه



mzamani
دوشنبه 26 شهریور 1386, 12:40 عصر
با سلام
من می خواهم یک فایل را از فولدر 1 به فوادر 2 move کنم
برای این کار ابتدا فایل را در فولدر 2 کپی و سپس آن را پاک می کنم
برای این کار از دستورات زیر استفاده می کنم

$e=$path."<A href="file://\\".$file">\\".$file;
copy($e,$despath);
unlink($e);

مشکل من این است که اگر در دستور unlink مسیر و نام فایل را به صورت دستی بنویسم فایل حذف می شود ولی چنانچه به جای آن از متغیر $e که همان مقدار را دارد استفاده کنم
فایل حذف نمی شود
نمی دانم مشکل از کجاست
لطفا مرا راهنمایی کنید:گیج::متفکر:

peyman1987
دوشنبه 26 شهریور 1386, 19:01 عصر
اولا دوست عزیز کدهاتون رو درون تگهای مناسب قرار بدین تا حداقل بشه خوندشون.



$e=$path."<A href="file://\\".$file">\\".$file;
copy($e,$despath);
unlink($e);


من نمیدونم شما چرا ته مسیر فایلتون تگ لینک اضافه کردین!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!

الگوریتم این کار و نمونه کدش بصورت زیره.



$strSource = "Files/source.jpg";
$strDestination = "Files/dest.jpg";
COPY($strSource,$strDestination);
UNLINK($strSource);


اون تگ لینک توی آدرس فایلتون چی هست رو من نمیدونم و شاید تا 2000 سال دیگه هم نفهمم. بهتره خودتون توضیح بدین که چیه!!!

mzamani
سه شنبه 27 شهریور 1386, 08:01 صبح
از توجهتون ممنونم
ولی کد من هم تگ لینک نداره نمی دونم چرا به این صورت کپی شده یا کپی کرده به هر حال در واقع کد من هم دقیقا مثل شماست
کد شما را هم امتحان کردم همانند قبل عمل کپی درست است ولی برای unlink پیغام Permission denied می دهد در صورتی که اگر به جای $strSource دقیقا رشته آدرس را بگذارم پاک می شود
و مشکل من هم دقیقا همین است
لطفا مرا راهنمایی کنید:لبخندساده:

peyman1987
سه شنبه 27 شهریور 1386, 11:31 صبح
خوب این خطایی که به شما میده بخاطر نداشتن اجازه دسترسی مناسبه.
اگه روی هاست کار میکنین باید اجازه دسترسی مناسب رو برای این فایل یا پوشه ای که این فایل توش هست تعریف کنین.

tabib_m
سه شنبه 27 شهریور 1386, 12:01 عصر
هر دو صورت از کدی که "کار میکنه" و "کار نمیکنه" رو اینجا بذار تا بشه بررسیش کرد...

موفق باشید.

mzamani
سه شنبه 27 شهریور 1386, 12:12 عصر
$file="f1.txt";
$path="C:\Apache\htdocs\New Folder\\nonprocessed";
$strSource = $path."\\".$file;
$strDestination = "C:\Apache\htdocs\New Folder\processed\\".$file;
COPY($strSource,$strDestination);
UNLINK($strSource);
این کد کار نمی کنه و خطای Permission denied می ده
ولی این کد کار می کنه با اینکه تنها تفاوت اون با کد بالا اینه که آرگومان unlink صریح وارد شده است:

$file="f1.txt";
$path="C:\Apache\htdocs\New Folder\\nonprocessed";
$strSource = $path."\\".$file;
$strDestination = "C:\Apache\htdocs\New Folder\processed\\".$file;
COPY($strSource,$strDestination);
UNLINK("C:\Apache\htdocs\New Folder\\nonprocessed\f1.txt");

peyman1987
سه شنبه 27 شهریور 1386, 13:02 عصر
فکر کنم شما چند تا خطا دارین :
1- توی آپاچی توی آدرسها بجای \ از / باید استفاده کنین. مثل :


C:/folder1/folrder2/file.txt


2 - چرا از آدرس مطلق استفاده میکنین؟؟؟ باید از آدرسهای نصبی استفاده کنین. مثلا اگه فایلی که میخواین پاکش کنین توی فولدر temp کنار همین فایل فعلی قرار داره باید آدرس دهیتون به شکل زیر باشه



UNLINK("Temp/File.txt");


اگه مشکلتون با اینها حل نشد شاید همونطور که گفتم از سطح دسترسی به پوشه باشه.