【发布时间】:2014-07-01 12:41:13
【问题描述】:
我有一个 C# 应用程序,它创建一个批处理文件然后运行它。这个批处理文件调用了一个应该删除某个文件的 C++ 应用程序。
当我运行 C# 应用程序时:
- 创建批处理文件没问题
- 运行批处理文件没问题
- 删除文件失败。
这是 C++ 代码和documentation:
// Attempt to delete the object from the device
hr = content->Delete(PORTABLE_DEVICE_DELETE_NO_RECURSION, // Deleting with no recursion
objectsToDelete.Get(), // Object(s) to delete
nullptr);
当我从命令行运行创建的批处理文件时,它可以工作,所以我不知道问题可能出在哪里。
【问题讨论】:
-
您是否在任何地方使用相对路径?从程序而不是命令行运行时,批处理文件的 pwd 可能不同。
-
您的进程/子进程是否在不同的安全上下文中运行?您是否收到有关删除失败原因的错误代码/消息?
-
@LB2 它不应该有任何不同的安全上下文,当我以管理员权限运行它时,它仍然不起作用。我没有任何错误代码或消息。
-
为什么要创建和运行批处理文件而不是直接调用 C++ 程序?
-
@DropDropped “我没有任何错误代码或消息” - 你有办法从你发布的代码块中获取
hr的值吗?这将包含错误代码,可能会提供有关不幸性质的线索。
标签: c# c++ file batch-file visual-studio-2013