加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#中的“MoveFile”功能(重启后删除文件)

发布时间:2020-12-15 17:48:49 所属栏目:百科 来源:网络整理
导读:我需要一个例子,可以让我传递一个参数 例如执行delete.exe /killme.txt 所以它将在重新启动后使用“MoveFile”删除killme.txt. 虽然请不要MS预编译版本,因为它有一个烦人的免责声明,每次运行在不同的计算机上. 解决方法 您将需要 MoveFileEx的P / Invoke声明
我需要一个例子,可以让我传递一个参数

例如执行delete.exe /killme.txt

所以它将在重新启动后使用“MoveFile”删除killme.txt.

虽然请不要MS预编译版本,因为它有一个烦人的免责声明,每次运行在不同的计算机上.

解决方法

您将需要 MoveFileEx的P / Invoke声明:
[Flags]
internal enum MoveFileFlags
{
    None = 0,ReplaceExisting = 1,CopyAllowed = 2,DelayUntilReboot = 4,WriteThrough = 8,CreateHardlink = 16,FailIfNotTrackable = 32,}

internal static class NativeMethods
{
    [DllImport("kernel32.dll",SetLastError=true,CharSet=CharSet.Unicode)]
    public static extern bool MoveFileEx(
        string lpExistingFileName,string lpNewFileName,MoveFileFlags dwFlags);
}

和一些示例代码:

if (!NativeMethods.MoveFileEx("a.txt",null,MoveFileFlags.DelayUntilReboot))
{
    Console.Error.WriteLine("Unable to schedule 'a.txt' for deletion");
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读