PDA

View Full Version : سوال: مشکل در حذف یک فایل



farzadkamali
جمعه 13 بهمن 1391, 10:45 صبح
سلام

چندین مورد کد دیدم که یک فایل رو در یک مسیر مشخصی حذف می کنن. ولی اگر فایل توی دسکتاپ باشه هیچ کدوم نمیتونن پاکش کنن.
من با تابع زیر کارکردم ولی نشد. یعنی وقتی فایلی روی صفحه دسکتاپ باشه نمی تونه اونو پاک کنه ولی در بقیه موارد چرا.


uses : shellapi


function DeleteFileWithUndo(sFileName: string): Boolean; var fos: TSHFileOpStruct; begin FillChar(fos, SizeOf(fos), 0); with fos do begin wFunc := FO_DELETE; pFrom := PChar(sFileName); fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT; end; Result := (0 = ShFileOperation(fos)); end;

دستور حذف:

DeleteFileWithUndo(آدرس فایل);

ممون میشم راهنماییم کنین

BORHAN TEC
جمعه 13 بهمن 1391, 10:55 صبح
اگر اشتباهی نکرده باشید، به خاطر اینه که برنامه به صورت Run As Administrator اجرا نشده.

farzadkamali
جمعه 13 بهمن 1391, 11:23 صبح
اگر اشتباهی نکرده باشید، به خاطر اینه که برنامه به صورت Run As Administrator اجرا نشده.

نه. مشکل از Run As Administrator نبود

سعید صابری
جمعه 13 بهمن 1391, 11:40 صبح
شاید فایل در حال استفاده را بخوای پاک کنید.اگر ارور متن ارور بزارید بشه بهتر کمکتون کرد

farzadkamali
جمعه 13 بهمن 1391, 12:30 عصر
شاید فایل در حال استفاده را بخوای پاک کنید.اگر ارور متن ارور بزارید بشه بهتر کمکتون کرد

درسته. وقتی فایل رو در ممو باز میکنی(یعنی متن فایل txt توی ممو بارگزاری میشه). نمی تونه فایل رو پاک کنه. ارور هم نمیده. اگه ممو رو هم پاک کنی بازم از حالت استفاده در نمیاد. مگه اینکه برنامه رو ببندی و باز کنی.تا اون فایل از حالت استفاده دربیاد. و دیگه فایل رو بارگزاری نکنی و یکراست حذف کنی.

چه طوری میشه فایل رو از حالت استفاده خارج کرد؟

من با کد زیر فایل رو در ممو بارگزاری میکنم.



memo1.Lines.LoadFromFile(notes.FieldByName('addres s').Value);

Mask
شنبه 14 بهمن 1391, 12:43 عصر
مشگلتون جای دیگست.
من با دستور زیر یه فایل رو ریختم تو ممو و بعد فایل رو پاک کردم. بدون هیچ مشکلی.

Memo1.Lines.LoadFromFile('c:\1.txt');