簡體   English   中英

在控制台應用程序中訪問文件夾

[英]Accessing folder in console application

我正在嘗試編寫一個將csv內容讀入數據表的函數。
我在文件路徑方面遇到異常,想知道我做錯了什么。 我所做的就是創建控制台應用程序,並在項目中創建一個名為“ Data”的文件夾。

public DataTable ReadCSV(string filename)
{
        DataTable dt = new DataTable();
        string sql = "SELECT * FROM " + filename;
        string path = "Data\\";
        string connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + filename + ";" + "Extended Properties='text;FMT=Delimited(;);HDR=YES'";
        OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connstring);
        System.Data.OleDb.OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);

        try
        {
            conn.Open();
            da.Fill(dt);
        }
        catch (Exception ex)
        {
            Console.WriteLine(filename + "not found");
        }

        finally
        {
            conn.Close();
        }
        return dt;
    }

}

在調試模式下運行時,我在Text可視化工具中的連接字符串:

Provider = Microsoft.Jet.OLEDB.4.0;數據源= Data \\ Positions.csv;擴展屬性='文本; FMT =定界(;); HDR =是'

我要例外了

“ base {System.Data.Common.DbException} = {”'Data \\ Positions.csv'不是有效的路徑。請確保路徑名稱拼寫正確,並且已連接到文件所在的服務器。“ }

誰能指出我正確的方向? 我做控制台應用程序的經驗有限,因此可能是我犯了一些格式錯誤。 謝謝

並在項目中創建一個名為“數據”的文件夾。

那不行 您的程序正在項目的bin \\ Debug子目錄中運行。 它沒有數據子目錄。 您必須使用..\\..\\Data\\Positions.csv來找到該文件。

好吧,這將立即解決您的問題,但是一旦將程序復制到另一台計算機上,它將不再有用。 那里沒有..\\..\\Data目錄。 想一想您的用戶將如何告訴您.csv文件的位置。 帶有OpenFileDialog的GUI是一種友好的方式,但與控制台應用程序不太兼容。 這樣做的標准方法是傳遞命令行參數。 Environment.CommandLine。 與典型用戶不太兼容。 您必須自己權衡這些選項。

暫無
暫無

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

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