c# -不能从数据表中找到路径字符串的一部分

本文关键字:路径 字符串 一部分 不能 数据表 | 更新日期: 2023-09-27 17:49:49

Ok,我的问题是,当我试图访问一个文件,而路径的文件名是从一个DataTable它只是找不到文件。

我已经测试了它,当我从一个文本文件解析文件名或只是硬编码在字符串…当然这是可行的>_<</p>

只是不要得到的区别是,当我字符串文件名从数据表。

它构建的字符串看起来像这样:

C: ' Server '系统/somefile.dat

代码如下:

    string accountConnectionString = ConfigurationManager.ConnectionStrings["connstring"].ConnectionString;
    public Form1()
    {
        InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
        LoadFileChecks();
    }
    public SqlConnection GetAccountConnection()
    {
        SqlConnection connection = new SqlConnection(accountConnectionString);
        connection.Open();
        return connection;
    }

    public DataTable getFilecheck()
    {
        using (var con = GetAccountConnection())
        {
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tFilecheck", con);
            DataTable ds = new DataTable("Filecheck");
            da.Fill(ds);
            con.Close();
            return ds;
        }
    }
    public void LoadFileChecks()
    {
        DataTable table = getFilecheck();
        string localPath = Application.StartupPath;
        foreach (DataRow row in table.Rows)
        {
            string line = row["sFilename"].ToString();
            string FilePath = localPath + "''" + line;
            if (!File.Exists(FilePath))
            {
                MessageBox.Show("File not found");
                continue;
            }
        }
    }

c# -不能从数据表中找到路径字符串的一部分

首先,Application.StartupPath取决于您如何部署应用程序exe。

string localPath = Application.StartupPath;

将是调试时的当前执行路径。项目' bin '调试)

第二,你不需要用'' 转义每个反斜杠

,而不是…

string path = "C:''Server''system";

try escape string with @

string path = @"C:'Server'system";

然后路径。结合文件名

string fileName = row["sFilename"].ToString();
string filePath = Path.Combine(path, fileName); 
//Path.Combine(@"C:'Server'system", "somefile.dat");

这是一个。net web应用程序吗?如果是,您应该使用

将路径更改为服务器路径。
path = Server.MapPath(path);