0
我正在製作一個程序,用戶可以在其中修改遠程文件。我將所選文件(取決於某些預定義標準)放在listView中,但我只顯示文件名,而不是完整的文件路徑。在列表中隱藏/修改字符串
但是,我得到的問題是,當用戶雙擊一個項目,它應該打開另一個窗口來修改該項目。
private void listView1_DoubleClick(object sender, EventArgs e)
{
account = File.ReadAllLines("\\\\myremoteserver\\ftp\\"+listView1.SelectedItems[0].Text+".txt");
Form3 passForm = new Form3();
passForm.ShowDialog();
}
private void Form2_Load(object sender, EventArgs e)
{
string[] files = Directory.GetFiles("\\\\myremotserver\\ftp\\","*.txt", System.IO.SearchOption.AllDirectories);
foreach (string s in files)
{
listView1.Items.Add(Path.GetFileNameWithoutExtension(s));
}
}
的問題是,這些文件都在不同的子文件夾,所以如果我按原樣留下的代碼,它不會顯示該文件的正確內容。例如,該文件被稱爲test1.txt,它被放置在myremoteserver\ftp\testfolder\test1.txt
中,但通過我的程序,它將嘗試在myremoteserver\ftp\test1.txt
中找到該文件。
我在問的是,如果可以用這種方式修改listView,那麼完整的文件路徑總是被保存,但只有文件名被顯示?我不希望用戶看到文件的完整文件路徑,只是文件名。
如果列表視圖中的項目有一個'.TAG你可以保存完整路徑 – EpicKip
或更好的在listView1.Items.Add方法中添加一個類型化的項目並使用DisplayMember(https://msdn.microsoft.com/en-us/library/system.windows。 forms.listcontrol.displaymember(v = vs.110).aspx)只顯示列表視圖中的名稱。 – Digvijay
我很可能會使用.tag屬性,謝謝你,它的工作原理,我只需交換'for'循環的'foreach'循環。 @Digvijay爲什麼會更好? – EInherjar