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

جلوگیری از حذف فایل تا زمانیکه برنامه در حال اجراست

0 امتیاز
سلام.

توی ویندوز برای اینکه کاربر نتونه بعضی از فایل های برنامه را تا زمانی که بازه پاک یا دستکاری کنه آیا راه حلی داره؟
سوال شده مرداد 31, 1399  بوسیله ی Alias (امتیاز 302)   3 24 31
دوباره تگ گذاری شد مرداد 31, 1399

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

تابع createFile تو ویندوز اینکارو براتون انجام میده اگر هم بخاید بخشی از فایل را را قفل کنید هم می تونید از تابع lockfile‌استفاده کنید و برای کار شما به صورت زیر عمل کنید. کد زیر فایل مورد نظر شما را قفل می کنه و ۱۰۰ ثانیه فایل پروتکت میشه.

int main() {

	const std::string filename ="";
	auto fileHandle = CreateFileA(filename.c_str(), GENERIC_READ,
		FILE_SHARE_READ,
		0, OPEN_EXISTING, 0, 0);

	std::this_thread::sleep_for(std::chrono::seconds(100));
return 0;
}

اگر داخل برنامه خودن قصد تغییر دارید فایل موردنظر را تغییر بدید  بجای GENERIC_READ‌  از GENERIC_WRITE استفاده کنید.

پاسخ داده شده مرداد 31, 1399 بوسیله ی عباس مولایی (امتیاز 2,754)   1 5 13
انتخاب شد شهریور 8, 1402 بوسیله ی farnoosh
سلام؛ راهی هم هست که درگیر قابلیّت‌های Platform‌ نشیم ؟
تو لینوکس میشه از fcntl استفاده کرد. fcntl  خودش رپری روی lockf .
...