为什么我得到此代码“不支持 URI 格式”
本文关键字:不支持 URI 格式 代码 为什么 | 更新日期: 2023-09-27 18:35:10
我有这段代码,应该为"uripath"字符串变量分配一个字符串路径值:
private readonly FileStream _fileStream;
. . .
string uriPath = GetExecutionFolder() + "''AppLogMsgs.txt";
_fileStream = File.OpenWrite(uriPath);
. . .
private string GetExecutionFolder()
{
return Path.GetDirectoryName
(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
}
。但它在尝试执行"_fileStream = File.OpenWrite(uriPath);"行时崩溃。
为什么,我需要做些什么来纠正这种反抗的发展?
"uriPath"崩溃时的值为:
file:''C:''Projects''ReportScheduler''ReportScheduler''bin''Debug''AppLogMsgs.txt
如果您的目的是知道包含清单的加载文件的位置,则可以将方法更改为
private string GetExecutionFolder()
{
return Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
}
查看位置属性
AssemblyName.CodeBase
属性以 URL 的形式返回程序集的位置,并且由于程序集是本地文件,字符串以 File:'' 开头
只需要从uriPath
中删除这部分,并且应该按预期工作:
string uriPath = GetExecutionFolder() + "''AppLogMsgs.txt";
uriPath = uriPath.Replace("file:''", string.Empty);
_fileStream = File.OpenWrite(uriPath);