簡體   English   中英

Visual Studio 2012如何訪問用戶的文本文件資源?

[英]Visual Studio 2012 how to access text-file resources for user?

我已經編寫了一個程序,以便用戶可以在其中跟蹤夢幻足球隊,以下代碼來自一種形式,該形式允許用戶根據一組特定規則選擇球隊。 這里的問題不是寫到它也從寫的文件中讀取文件。

該文件在我的資源中,它包含用戶輸入的玩家。 問題是用戶必須訪問該文本文件,此時用戶是否可以訪問編輯該文件都無關緊要,這不是一個人的個人項目。 但是,我設置該程序的方式只能在我的計算機上運行,​​因為我要使用的路徑是文本文件屬性中的完整路徑。

我嘗試使用如下所示的properties.Resources.resource,最近我嘗試使用Application.StartupPath +“ /FantasyFootball.txt”。 我仍然沒有嘗試過反射,因為我不確定是否需要反射。 這個想法應該是我發布了該程序,並且該程序應該可以在任何計算機上運行;但是,當我嘗試在Visual Studio外部運行該程序時出現異常,找不到AppData文件夾。

所以現在的問題是,當我按下Visual Studio中的“發布”按鈕時,實際上會發生什么? 我得到了安裝文件和應用程序文件文件夾,以及actual.application文件,該文件最終出現在app.Publish文件夾的release文件夾中的bin文件夾中。 我還沒有經驗,不知道這一切意味着什么或對它有什么建議?

private void btnShowRoster_Click(object sender, EventArgs e)
    {
        string masterRosterPath = Properties.Resources.FantasyFootball;/*
        this is where the problem is I am not sure what to make the path
        so that the user will be able to acess the file*/

 FileStream fs = new FileStream(masterRosterPath, FileMode.Open, FileAccess.Read);
        StreamReader sr = new StreamReader(fs);
        string playerIn;
        string[] fields;
        playerIn = sr.ReadLine();
        const char DELIM = ',';
        string player = " ";

        while (playerIn != null)
        {
            fields = playerIn.Split(DELIM);
            player = Convert.ToString(fields[0]);

            lbRoster.Items.Add(player);
            playerIn = sr.ReadLine();
        }
        sr.Close();
        fs.Close();
        btnShowRoster.Enabled = false;
        MessageBox.Show("Click on a player to add them to your team", "Choose Team", MessageBoxButtons.OK,MessageBoxIcon.Information);
    }

從我可以從您的問題中收集的信息來看,您正在嘗試訪問已導入到項目的Resources文件夾中的文件。

如果我理解正確,則訪問文件資源FantasyFootball返回的字符串實際上是文本文件的內容,而不是指向該文件的路徑。 因此,您可以直接使用其內容! 無需文件閱讀器。 當您發布應用程序時,它將與它一起分發。

執行以下操作時,資源的內容已加載到字符串中:

string masterRosterPath = Properties.Resources.FantasyFootball;

然后,您可以直接開始解析masterRosterPath


擴展問題

如果您確實決定使用資源來包含用戶的數據,則應注意,此類資源文件將不允許您通過代碼動態修改其內容。

例如,如果這是您的目標,則可以在磁盤上的預定路徑(例如,可執行文件旁邊,單獨的文件夾或完全其他位置)上手動創建文件,然后再加載(如果不存在)或在加載過程中用戶第一次運行該應用程序。 然后,您可以僅加載文件,編輯其內容並隨意保存。 請注意,文件的內容可以在應用程序外部進行編輯!

也許這是您要尋找的而不是資源,但是您可以使用用戶設置保存該路徑,而不是對其進行硬編碼。 您可以隨意編輯這些文件,並且運行該應用程序的計算機的每個用戶都可以具有不同的路徑值。

如果您只需要保存幾個有關一位玩家的字段,您甚至可以考慮完全將它們設置為“設置”。 這將使它們易於管理和訪問。 您還應該注意,這些設置也可以在應用程序外部進行編輯,因為它們會自動保存為XML文件,並隱藏在AppData文件夾中。 應用程序啟動時,將為正確的用戶加載設置。

如果聽起來很有趣,請參閱“ 使用應用程序設置和用戶設置”中的 MSDN。

希望對您有所幫助!

暫無
暫無

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

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