2017-09-05 98 views
-1

我想將文件複製到需要管理員權限的文件夾中。C++將文件複製到具有管理權限的文件夾中

例子:

string oldPath = "C:\\Users\\Sony\\Desktop\\a.txt"; 
string newPath = "C:\\ProgramData\\Microsoft\\Network\\a.txt"; 

int main(){ 
    MoveFile(oldPath.c_str(), newPath.c_str()); 

    // now I have to send the permission, because the file won't be copied 

    return 0; 
} 

我怎樣才能把這些權限將文件複製到這樣的文件夾?

謝謝你們

+1

請把MoveFile函數的定義,所以我們可以看到這是怎麼回事! – PerelMan

+2

將其標記爲與MS-Windows Access控件和文件權限上的完整書籍一樣寬泛。 –

+1

@MarwanB'MoveFile'是一個Win32 API函數:https://msdn.microsoft.com/en-us/library/windows/desktop/aa365239(v=vs.85).aspx –

回答

0

您有幾種選擇:

  1. 運行應用程序作爲管理員。這爲整個生命週期提供了整個應用程序管理權限。你應該努力不要這樣做,除非你的整個應用程序在任何時候都需要管理員權限。否則,儘量使用最少的權限運行。僅在文件拷貝

  2. 獲得管理員權限暫時

    • impersonate管理員用戶,執行文件的拷貝,並在完成後恢復到原來的用戶。

    • 將文件複製邏輯移動到可以使用ShellExecute/Ex("runas")運行的單獨進程。

    • 將文件複製邏輯移動到可以使用COM Elevation Moniker提升的COM對象。

+0

你能給我一個代碼示例給你的第二選擇嗎? – PhyToniC

相關問題