PDA

View Full Version : سوال: حذف خودکار فایل های غیر ضروری از سرور



reuonis
پنج شنبه 09 دی 1389, 17:51 عصر
با سلام
من برای آپلود فایل توی سرور ابتدا فایل های کاربر رو در یک پوشه Temp ذخیره می کنم سپس در صورتی که کاربر اطلاعات را ثبت کرد به پوشه اصلی منتقل شود.
حالا من اگه بخوام این فایل های توی پوشه Temp به صورت خودکار برای کاربرانی که آفلاین هستند حذف شوند
چکار باید بکنم؟
یعنی کجا باید کد مربوط به اجرای کدی را که به صورت خودکار اجرا بشه رو بنویسم؟

Kia_MLS
جمعه 10 دی 1389, 12:10 عصر
با سلام
من برای آپلود فایل توی سرور ابتدا فایل های کاربر رو در یک پوشه Temp ذخیره می کنم سپس در صورتی که کاربر اطلاعات را ثبت کرد به پوشه اصلی منتقل شود.
حالا من اگه بخوام این فایل های توی پوشه Temp به صورت خودکار برای کاربرانی که آفلاین هستند حذف شوند
چکار باید بکنم؟
یعنی کجا باید کد مربوط به اجرای کدی را که به صورت خودکار اجرا بشه رو بنویسم؟

سلام
دوست عزیز، میتونی در هر زمان که یک فایل جدید رو آپلود میکنی فایلهای قدیمی رو حذف کنی، حالا این که چقدر قدیمی باشه به خودت بستگی داره
مد زیر فایلهایی که تاریخشون مربوط به امروز نیست رو پاک میکنه:



public class EmptyFolder
{
public static void EmptyTempFolder(string tempFolder)
{
string[] files = Directory.GetFiles(tempFolder);

if (files.Length <= 0)
return;

foreach (string fileName in files)
{
DateTime date = File.GetLastWriteTime(fileName);
TimeSpan t = date.Subtract(DateTime.Now);

if (t.Days < 0)
{
try
{
File.SetAttributes(fileName, FileAttributes.Normal);
File.Delete(fileName);
}
catch
{

}
}
}
}

}


این تابع آدرس یک فولدر رو میگیره و هرچی فایل غیر از اونهایی که تاریخشون مربوط به امروزه رو پاک میکنه
نحوه فراخوانی:


EmptyFolder.EmptyTempFolder(Server.MapPath("~")) + "PicturesUpload");

reuonis
شنبه 11 دی 1389, 13:28 عصر
ممنون از پاسختون
این روش خوبیست ولی در صورتی که کاربر ساعت 11:55 دقیقه شب داره فایلهاش رو آپلود می کنه و ممکنه 10 دقیقه طول بکشه. با این دستور فایل هایی که قبل ساعت 12 آپاود کرده از بین می ره
من وقتی که کاربر Sign out می کنه و وقتی که فایل هاش رو ثبت می کنه و بعد از اینکه توی پوشه ی مربوط به خودش می ریزه پاک می کنم. حالا وقتی که پشیمون شد و مرورگر رو بست فایل های پوشه Temp رو پاک کنه. توی متد Session_End به طور مطمئن پاک نمیشه. راه دیگری شما پیشنهاد می کنید؟
البته میشه توی کدی که شما گفتید بررسی کنه ببینه که کاربر آنلاین هست یا نه بعد پاک کنه. ولی من راه بهتری می خوام که مطمئن باشه

alonemm
شنبه 11 دی 1389, 14:18 عصر
براي اجراي كد به صورت خود كار از قسمت Corn-job قسمت مديريت وب سايتتون ميتونيد كمك بگيريد.

reuonis
شنبه 11 دی 1389, 17:02 عصر
براي اجراي كد به صورت خود كار از قسمت Corn-job قسمت مديريت وب سايتتون ميتونيد كمك بگيريد.

Corn-job چی هست؟ میشه بیشتر توضیح بدید؟

AlirezaSaberi
سه شنبه 14 دی 1389, 00:04 صبح
Corn-job چی هست؟ میشه بیشتر توضیح بدید؟
راستي سرور ويندوزي هم مگه corn job داره؟