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;
}
}
}
首先,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);