Hallo, das ist, was ich tun möchte, ich möchte den .xls
Namen oder die konvertierte Datei basierend auf dem ursprünglichen Dateinamen .dbf
benennen. Beispiel ich konvertiere die acct_code.dbf
, der Excel-Dateiname sollte acct_code.xls
sein. Ich habe es versucht, aber es hat nicht funktioniert. Kann mir jemand helfen? Wie macht man das?C# - Ändern Sie den Dateinamen der konvertierten Datei auf der Grundlage des ursprünglichen Dateinamens
hier ist der Code.
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
if (result == DialogResult.OK) // Test result.
{
textBox1.Text = openFileDialog1.FileName;
}
}
private void button2_Click(object sender, EventArgs e)
{
string constr = "Provider=VFPOLEDB.1;Data Source=" + Directory.GetParent(textBox1.Text).FullName;
string ExcelFileName = AppDomain.CurrentDomain.BaseDirectory + "converted_file.xls"; <--- here's the file name for excel file
using (OleDbConnection con = new OleDbConnection(constr))
{
var sql = "select * from " + Path.GetFileName(textBox1.Text) + ";";
OleDbCommand cmd = new OleDbCommand(sql, con);
DataTable dt = new DataTable();
try
{
con.Open();
}
catch (Exception ex)
{
MessageBox.Show("Error connecting database: " + ex.Message , "Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
if (con.State == ConnectionState.Open)
{
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
MessageBox.Show("Reading database... ", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
da.Fill(dt);
MessageBox.Show("Completed.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (con.State == ConnectionState.Open)
{
try
{
con.Close();
}
catch { }
}
if (dt != null && dt.Rows.Count > 0)
{
GenerateExcel(dt, ExcelFileName);
}
}
}
'System.IO.Path.GetFileNameWithoutExtension (originalFile)' ist der Schlüssel. Danke bro :) – nethken
Verwenden Sie System.IO.Path.Combine (VerzeichnisName, Dateiname) anstelle von VerzeichnisName + "\\" + Dateiname – Den