簡體   English   中英

如何訪問“文檔和設置”文件夾?

[英]How can I access the "Documents and Settings" folder?

我在 VS 2010 中使用 C# .NET 4。

當迭代某些路徑時,我正在運行這一行:

files = Directory.GetFiles(path, searchPattern);

當路徑是文檔和設置文件夾時,我得到一個例外。 我怎樣才能訪問它? 不,我不想通過嘗試和捕捉來跳過文件夾。 我希望能夠以某種方式訪問​​它。

編輯:我有一個后續問題。 正如我告訴你的,我正在遍歷路徑。 有沒有辦法使用Environment.GetFolderPath但是根據我當前正在檢查的路徑以某種方式確定正確的特殊文件夾?

你必須像這樣使用

var mydocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

訪問MyDocuments文件夾。

來自Environment.SpecialFolder

系統特殊文件夾是諸如 Program Files、Programs、System 或 Startup 之類的文件夾,其中包含公共信息。 在安裝某個版本的 Windows 時,系統會默認設置特殊文件夾,或由用戶明確設置。

GetFolderPath 方法返回與此枚舉關聯的位置。 這些文件夾的位置在不同的操作系統上可以有不同的值,用戶可以更改一些位置,並且這些位置是本地化的。

只需使用

string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
files = Directory.GetFiles(path, searchPattern);

在我的電腦中,它返回為C:\\Users\\Soner\\Documents

有沒有辦法使用 Environment.GetFolderPath 但是根據我當前正在檢查的路徑以某種方式確定正確的特殊文件夾?

由於SpecialFolder是枚舉類型,您可以在循環中迭代它們的值。 這是它的樣子;

public enum SpecialFolder
{
    AdminTools = 0x30,
    ApplicationData = 0x1a,
    CDBurning = 0x3b,
    CommonAdminTools = 0x2f,
    CommonApplicationData = 0x23,
    CommonDesktopDirectory = 0x19,
    CommonDocuments = 0x2e,
    CommonMusic = 0x35,
    CommonOemLinks = 0x3a,
    CommonPictures = 0x36,
    CommonProgramFiles = 0x2b,
    CommonProgramFilesX86 = 0x2c,
    CommonPrograms = 0x17,
    CommonStartMenu = 0x16,
    CommonStartup = 0x18,
    CommonTemplates = 0x2d,
    CommonVideos = 0x37,
    Cookies = 0x21,
    Desktop = 0,
    DesktopDirectory = 0x10,
    Favorites = 6,
    Fonts = 20,
    History = 0x22,
    InternetCache = 0x20,
    LocalApplicationData = 0x1c,
    LocalizedResources = 0x39,
    MyComputer = 0x11,
    MyDocuments = 5,
    MyMusic = 13,
    MyPictures = 0x27,
    MyVideos = 14,
    NetworkShortcuts = 0x13,
    Personal = 5,
    PrinterShortcuts = 0x1b,
    ProgramFiles = 0x26,
    ProgramFilesX86 = 0x2a,
    Programs = 2,
    Recent = 8,
    Resources = 0x38,
    SendTo = 9,
    StartMenu = 11,
    Startup = 7,
    System = 0x25,
    SystemX86 = 0x29,
    Templates = 0x15,
    UserProfile = 40,
    Windows = 0x24
}

您可以將程序設置為只能以管理員身份運行。

在 Visual Studio 中:

右鍵單擊項目 -> 屬性 -> 安全性 -> 啟用 ClickOnce 安全性

單擊它后,將在項目的屬性文件夾下創建一個名為 app.manifest 的文件,一旦創建該文件,您可以取消選中啟用 ClickOnce 安全設置選項

打開該文件並更改此行:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

到:

 <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

這將使程序需要管理員權限,並保證您可以訪問該文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM