0

我想让应用程序从指定的工作中删除目标文件。执行该软件的用户将是目标机器上的管理员,因此我使用以下代码进行测试:

string strTarget = @"\\" + textBox1.Text + @"\C$\Temp\temp.txt";

            try
            {
                File.Delete(strTarget);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Failure to delete: " + ex.Message);
            }

然后我在我自己的工作站和另一台测试机器上创建了一个 \Temp\Temp.txt 文件。我是两台机器的管理员,可以通过相关的 UNC 路径手动访问和删除文件。当我运行代码调试器时,没有抛出异常,但文件没有删除。我无法弄清楚我们没有发生什么导致失败。

有什么我可以检查的或我需要添加的任何代码吗?我已经搜索了其他问题,但我还没有找到答案。

4

1 回答 1

1

如果您在 Vista/7 下运行,则您的程序可能在未升级的权限下运行。确保您以管理员身份显式运行程序,或在项目的清单文件中指定它:

  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <!--
      UAC Manifest Options
      If you want to change the Windows User Account Control level replace the 
      requestedExecutionLevel node with one of the following.

    <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
    <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
    <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

     If you want to utilize File and Registry Virtualization for backward 
     compatibility then delete the requestedExecutionLevel node.
-->
    <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
  </requestedPrivileges>
于 2012-04-30T23:17:39.037 回答