C# 错误:给定路径';不支持s格式
获取此错误C# 错误:给定路径';不支持s格式,c#,C#,获取此错误不支持给定路径的格式。在此行 System.IO.Directory.CreateDirectory(visit_Path); 我在下面的代码中犯了错误 void Create_VisitDateFolder() { this.pid = Convert.ToInt32(db.GetPatientID(cmbPatientName.SelectedItem.ToString())); String strpath = S
不支持给定路径的格式。
在此行
System.IO.Directory.CreateDirectory(visit_Path);
我在下面的代码中犯了错误
void Create_VisitDateFolder()
{
this.pid = Convert.ToInt32(db.GetPatientID(cmbPatientName.SelectedItem.ToString()));
String strpath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
String path = strpath + "\\Patients\\Patient_" + pid + "\\";
string visitdate = db.GetPatient_visitDate(pid);
this.visitNo = db.GetPatientID_visitNo(pid);
string visit_Path = path +"visit_" + visitNo + "_" + visitdate+"\\";
bool IsVisitExist = System.IO.Directory.Exists(path);
bool IsVisitPath=System.IO.Directory.Exists(visit_Path);
if (!IsVisitExist)
{
System.IO.Directory.CreateDirectory(path);
}
if (!IsVisitPath)
{
System.IO.Directory.CreateDirectory(visit_Path);\\error here
}
}
为访问路径获取此值
C:\Users\Monika\Documents\Visual Studio 2010\Projects\SonoRepo\SonoRepo\bin\Debug\Patients\Patient_16\visit_4_16-10-2013 00:00:00\
不能在路径中使用冒号(:
)。例如,您可以用点(
)替换()
。文件路径中不能有冒号:
,目录名中不能有:
,我建议您使用此字符串获取目录名中的日期:
DateTime.Now.ToString("yyyy-MM-dd hh_mm_ss");
它将创建时间戳,如:
2013年10月17日
补充说明:
用于生成完整路径,如:
var path = Path.Combine(strpath , "Patients", "Patient_" + pid);
最后
string suffix = "visit_"+visitNo+"_" + visitdate;
var visit_Path = Path.Combine(path, suffix);
通常,始终使用创建路径:
String strPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
String path = Path.Combine(strPath,"Patients","Patient_" + pid);
string visitdate = db.GetPatient_visitDate(pid);
this.visitNo = db.GetPatientID_visitNo(pid);
string fileName = string.Format("visit_{0}_{1}", visitNo, visitdate);
string visit_Path = Path.Combine(path, fileName);
bool IsVisitExist = System.IO.Directory.Exists(path);
bool IsVisitPath=System.IO.Directory.Exists(visit_Path);
要替换文件名中的无效字符,可以使用以下循环:
string invalidChars = new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars());
foreach (char c in invalidChars)
{
visit_Path = visit_Path.Replace(c.ToString(), ""); // or with "."
}
只是想加上我的两分钱。 我将一个文本框的路径指定给了string,还添加了其他字符串,但是我忘记了将.text添加到文本框变量中 所以不是
strFinalPath = TextBox1.Text + strIntermediatePath + strFilename
我写
strFinalPath = TextBox1 + strIntermediatePath + strFilename
因此路径无效,因为它包含无效字符。
我感到惊讶的是,c#没有因为类型不匹配而拒绝赋值,而是将无效值赋给了最后一个字符串。
因此,请仔细查看路径分配字符串
:
在目录名中?通常,使用路径。组合
来构造路径,而不是strpath+“\\Patients\\Patient\\\\++pid+“\\\\”+“visit\\++visitNo+“\\”+visitdate+”
@TimSchmelter你能告诉我这行代码是怎么写的吗