我正在使用 saveFileDialog 创建和保存一个 csv 文件。我需要找到一种方法来记住该人将文件保存到的路径名,以便稍后在代码中使用该文件的路径名。
下面的代码是我一直在尝试的,只是为了返回 pathName 但它实际上只会返回sfd.FileName
. 有没有办法获得完整的路径?
private void saveCSVbutton_Click(object sender, EventArgs e)
{
saveShipping();
saveATT();
saveVerizon();
String shippingPath = saveShipping();
MessageBox.Show(shippingPath);
}
private String saveShipping()
{
if (dataGridView1.Rows.Count > 0)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "CSV (*.csv)|*.csv";
sfd.FileName = "shippingOutput.csv";
bool fileError = false;
if (sfd.ShowDialog() == DialogResult.OK)
{
if (File.Exists(sfd.FileName))
{
try
{//overwrite file
File.Delete(sfd.FileName);
}
catch (IOException ex)
{
fileError = true;
MessageBox.Show("It wasn't possible to write the data to the disk." + ex.Message);
}
}
if (!fileError)
{
try
{
int columnCount = dataGridView1.Columns.Count;
string columnNames = "";
string[] outputCsv = new string[dataGridView1.Rows.Count + 1];
for (int i = 0; i < columnCount; i++)
{
columnNames += dataGridView1.Columns[i].HeaderText.ToString() + ",";
}
outputCsv[0] += columnNames;
for (int i = 1; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < columnCount; j++)
{
outputCsv[i] += dataGridView1.Rows[i - 1].Cells[j].Value.ToString() + ",";
}
}
File.WriteAllLines(sfd.FileName, outputCsv, Encoding.UTF8);
MessageBox.Show("Data Exported Successfully", "Info");
String attachPathName = sfd.FileName;
}
catch (Exception ex)
{
MessageBox.Show("Error :" + ex.Message);
}
}
}
}
else
{
MessageBox.Show("No Record To Export", "Info");
}
return attachPathName;
}