簡體   English   中英

C#-在設置中存儲多個目錄並將其加載到列表框中

[英]C# - Storing multiple directories in settings and loading them into listbox

我目前有一個帶有列表框控件的winform,該控件允許用戶瀏覽目錄並將其添加到列表框中。 然后將使用應用程序設置文件(作為字符串?)保存這些目錄位置,但是我不確定如何分隔每個目錄字符串。 重新加載表單后,我希望所有目錄都作為設置文件中的單個項加載到列表框中。

所以我從技術上有兩個問題:

  1. 在應用程序設置文件中保存多個位置的最有效方法是什么?

  2. 如何將目錄從設置加載到列表框中? (請記住,有多個目錄)

我的想法是將所有目錄存儲在一個字符串設置中,並用逗號分隔它們,但是我不確定是否有更有效的方法來執行此操作。

沒有!!!! 絕對不要做!!!! 逗號可以包含在文件夾名稱中,如果使用逗號作為分隔符,可能會給程序帶來許多關鍵問題。

您可以在Windows的文件夾名稱中使用非法字符。 \\ / : * ? " < > |

您也不能使用\\/因為路徑可能存儲為c:\\\\data\\\\並且使用'\\'作為分隔符是不好的,並且它們也可能存儲為c:/data/所以使用/有風險。 我認為使用*| 也許是一個好主意,因為它們是非法的,並且它們不能位於文件夾路徑的任何位置,並且具有某些文件夾路徑的字符串是可讀的,並且可以簡單地由see *|識別| 作為分隔符。

    String[] paths = s.Split(new char[]{'*'}, StringSplitOptions.RemoveEmptyEntries);
    listBox1.Items.AddRange(paths);

其中s是您從設置文件中讀取的串聯文件夾路徑的字符串。 你也可以用

        String[] paths = s.Split(new char[]{'*'}, StringSplitOptions.RemoveEmptyEntries);
        listBox1.DataSource = paths;

您可以這樣做,然后創建一個字符串。在逗號上分割,然后將列表框的源設置為分割的結果。

string settings = GetFromConfig();
var items = settings.Split(',');
listBox1.DataSource = items;

您可以在設置文件中使用StringCollection

進入集合后,您只需將它們放回List<String> ,然后通過ListBox.Items屬性(特別是Add方法)將這些項添加回去。

暫無
暫無

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

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