3

プログラムでジャンクションのターゲットを取得しようとしていますが、管理した唯一の方法は次のとおりです。

  1. バックアップ権限のリクエスト
  2. ファイル/ディレクトリへのハンドルを取得するために、特別なパラメーターを指定して CreateFile を p-invoke します。
  3. ターゲットを取得するための DeviceIoControl 呼び出し。

最初のステップは通常のユーザー アカウントでは機能しません。バックアップ権限がないためです。これを行うたびに UAC ユーザーの同意ウィンドウを取得したくありません。

通常の「dir /A:L」コマンドでリンクのターゲットが解決されるため、これはなんとか実行できると思います。

4

1 に答える 1

0

このスタックオーバーフローの回答が役立つと思いますか? Windows シンボリック リンクのターゲット パスにプログラムでアクセスするにはどうすればよいですか? ac# プログラムの DllImport 属性を介して関数への参照を含めることができるはずです。

必要なハンドルは、FileStreamインスタンスから取得できます。古いものとしてマークされているのは少しおかしいですが、警告には他に何ができるかが示されているかもしれません。

于 2010-02-10T22:22:09.580 に答える