无法从UNC路径中删除文件

时间:2012-04-30 23:11:06

标签: c# networking unc

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

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路径手动访问和删除文件。当我运行代码调试器时,不会抛出任何异常,但文件不会删除。我无法想象我们发生了什么事情都没有失败。

我可以查看任何内容或我需要添加的代码吗?我已经对其他问题进行了搜索,但我还没有找到答案。

1 个答案:

答案 0 :(得分:1)

如果你在Vista / 7下运行,你的程序可能正在非升级的priveleges下运行。确保以管理员身份明确运行程序,或在项目的清单文件中指定它:

  <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>