我必須編寫代碼以使用c#或C++訪問隱藏的磁盤分區/卷。 但是找不到任何關於此事的幫助參考。如何訪問隱藏的分區/卷
作爲隱藏卷,它不包含「磁盤字母」,因此您不能只鍵入「C:\」並訪問它。 一個例子就是Windows附帶的「恢復分區」。你不能在探險家看到它,但它在那裏。
我的應用程序將寫入和讀取來自thoose分區的數據,我必須找到一種像「c:\」這樣的方式來處理thoose。
在上述圖像,卷5和6被隱藏分區。 我發現在計算器這個鏈接,但它只是「表」德分區: https://msdn.microsoft.com/en-us/library/cc542456(v=VS.85).aspx
編輯
的問題是:即使使用WMI作爲suguested我便無法找到如何篩選音量當查找文件時。 例如,select * from win32_DataFile
將列出機器中的所有文件。
我認爲應該是一種使用其ID(或名稱)過濾卷的方法。 喜歡的東西:
select * from win32_DataFile
where volumeId = '\\?\Volume{2d5f3a68-75f5-44c4-aa42-716b45811916}\'
或者一個更華麗的方式,如:
var files = Directory.GetFiles(@"\\?\Volume{6ff7748e-78db-4838-8896-254b074918f5}\");
而且,我發現了一個外觀極好awenser約分區和卷(他們是不一樣的東西) https://social.technet.microsoft.com/Forums/en-US/e7b2ddd6-f245-49ed-8fec-3b6e08e75369/how-do-i-find-the-partition-guid?forum=winservergen
EDIT2
正如哈里所說,使用「\。\ Volume ....」是恢復文件的好方法。但我找不到使用c#編寫(創建)新文件的方法。 到目前爲止最好的方法是使用pinvoke來C++ CreateFile方法/句柄。
有什麼建議嗎?
「找不到對此事的任何幫助,參考」 - 是不是鏈接你有一個問題給你足夠的暗示下一次搜索?您是否閱讀過樣本中使用的每個函數的詳細信息?在這一點上,你的問題可能是非常廣泛的SO ... –
在C++中,您可以使用'GetLogicalDriveStrings' http://stackoverflow.com/a/18573199/4603670和'GetDriveType' –