0
我有移動目錄到一個新的位置的問題,特別是一個我CreateDirectory
創建目錄移動。下面是代碼:C++ MoveFile給ERROR_ACCESS_DENIED不一致的Windows Server
if (FALSE == CreateDirectory(strDestination, NULL))
{
dwError = GetLastError();
if (ERROR_ALREADY_EXISTS != dwError)
{
strError.Format("Error creating %s: %i", strDestination, dwError);
LogIt(strError);
}
}
if (FALSE == MoveFile(strSource, strDestination + strID))
{
dwError = GetLastError();
strError.Format("Error moving %s to %s: %i", strSource, strDestination + strID, dwError);
LogIt(strError);
}
但是,如果我手動創建一個目錄,我可以這條道路送入該代碼和它的作品。我已經比較了這兩個目錄的安全設置,並確保它們是相同的,但仍然不起作用。有沒有我做錯了我的創作代碼?如果我將第二個參數保留爲NULL
,它不應該授予我手動創建目錄時的相同權限嗎?
它們都是'CString'類型。 –
在您的成功案例和您的失敗案例中,源和目標位於同一驅動器上嗎? –
啊哈,很好。源代碼在'C:'上。成功是在同一個驅動器上,但失敗在'E:'上。我在'E:'手動創建的目錄中嘗試了它,並且以相同的方式失敗。我不知道文件不能跨驅動器移動。 –