我正在開發一個小型應用程序,它接收一個csv文件,刪除所有行,除了那些在第二列中有「關鍵」的行。您只需輸入輸入路徑和輸出路徑,即可完成操作。一切都很好,直到我決定做拖放。我將輸入文件拖到Windows窗體中,文本框會自動填充我需要的路徑。大。然後填充輸出路徑。但是,當我按執行按鈕,我得到「路徑中的非法字符」錯誤。但是,當我輸入拖動時出現的相同確切路徑時,該程序起作用!任何想法,如果他們是像我看不到的隱藏的角色?這裏是我的代碼:如何在拖放C#時獲得正確和乾淨的路徑?
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.AllowDrop = true;
}
private void button1_Click(object sender, EventArgs e)
{
String inputpath = textBox1.Text;
String outputpath = textBox2.Text;
MessageBox.Show(inputpath, outputpath);
var retainedLines = File.ReadAllLines(@inputpath)
.Where((x, i) => i == 0 || (x.Split(',')[1]).Contains("critical"));
if (inputpath.Equals(outputpath))
{
File.Delete(@inputpath);
}
File.WriteAllLines(@outputpath, retainedLines);
}
private void Form1_DragDrop(object sender, DragEventArgs e)
{
string[] fileList = (string[])e.Data.GetData(DataFormats.FileDrop, false);
foreach (string s in fileList)
{
String k= String.Format("{0}{1}", s, Environment.NewLine);
k = k.Replace("\n", String.Empty);
textBox1.Clear();
textBox1.Text = k;
}
}
private void Form1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
e.Effect = DragDropEffects.All;
}
}
我已經試過了,結果相同 – XenonDragon