【问题标题】:how to move or delete dll file from system32 or SysWOW64 location in c# programatically如何以编程方式从 c# 中的 system32 或 SysWOW64 位置移动或删除 dll 文件
【发布时间】:2017-06-23 18:52:07
【问题描述】:

我正在尝试以编程方式在 c# 中从 System32 或 SysWOW64 目录移动一个 dll 文件。我正在使用以下代码:

string path32 = "c:/windows/System32/";
string path64 = "c:/windows/SysWOW64/";
string fileName = "mydll.dll";
string[] paths = { path32, path64 };
foreach (string p in paths)
{
    if (int.Parse(year) == 1)
    {
        DirectoryInfo d = new DirectoryInfo(p);
        FileInfo[] infos = d.GetFiles(fileName);
        foreach (FileInfo f in infos)
        {
            // Do the renaming here
            File.Move(f.FullName, Path.Combine(f.DirectoryName, "1" + f.Name));
        }
    }
}

我在 WCF 服务的特定条件下使用此方法。当我在本地环境中执行此操作时,它运行良好。但是当我在不同的机器上运行时,它会抛出以下错误:

服务器在处理请求时遇到错误。请参阅 服务帮助页面,用于构建对服务的有效请求。这 异常消息是“拒绝访问路径。”。查看服务器日志 更多细节。异常堆栈跟踪是:

在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.File.InternalMove(字符串源文件名,字符串 destFileName,布尔检查主机) 在 SyncInvokeCalculateFestivaldate(Object , Object[] , Object[] ) 在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象 实例,Object[] 输入,Object[]& 输出)在 System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& RPC)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& RPC)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

如何在 c# 中授予访问权限,以便重命名和移动 dll 文件?

【问题讨论】:

  • 进程在第二台机器上运行的用户是否有目录和文件的权限?
  • @MORCHARD 我猜,不是。那么如何以编程方式获取权限呢?
  • 负面投票评论员,我可以知道为什么这会得到负面投票。我知道有一些类似的问题,但它与另一个不同,我无法解决仅在此处提出的问题。
  • System32/SysWow64 不是你的文件系统的一部分——它们是系统。 您的应用程序不应该在其中删除任何内容,因为它本来就不应该在其中放置任何内容。

标签: c# .net wcf dll


【解决方案1】:

要更改所需文件夹中的内容,您需要提升(管理员)Windows 权限,即您的应用程序必须以管理员身份运行 - 这是一个很大的安全禁忌。您可能是本地管理员,因此有权更改您自己的系统,这就是它在您的本地环境中运行的原因。

【讨论】:

    猜你喜欢
    • 2018-05-29
    • 2018-09-24
    • 2011-03-06
    • 2016-01-05
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多