使用 Stream Reader 动态打开文件
File open dynamic using Stream Reader
我需要一些帮助。我正在创建一个方法,该方法获取带有文件名的字符串并读取项目路径上的文件 json,反序列化一个对象。
但是在文件打开时,我想将路径与文件名连接起来,但它不起作用。
public static ObjectXpto ObjectXptoType(string filename)
{
ObjectXpto objectXpto = new ObjectXpto();
using (StreamReader file = File.OpenText(@"..\project\Data$"{filename}".json"))
{
JsonSerializer serializer = new JsonSerializer();
objectXpto = (ObjectXpto)serializer.Deserialize(file, typeof(ObjectXpto));
}
return objectXpto;
}
您可以在字符串前使用 $ 和 @ 符号来在字符串中键入变量名。
using (StreamReader file = File.OpenText($@"..\project\Data\{filename}.json"))
我想你想要这个:
public static ObjectXpto ObjectXptoType(string filename)
{
ObjectXpto objectXpto = new ObjectXpto();
using (StreamReader file = File.OpenText($"..\project\Data\{filename}.json"))
{
JsonSerializer serializer = new JsonSerializer();
objectXpto = (ObjectXpto)serializer.Deserialize(file, typeof(ObjectXpto));
}
return objectXpto;
}
}
安全的方法是使用Path.Combine or Path.Join :
var fullPath=Path.Combine(@"..\project\Data",$"{fileName}.json");
这会处理文件夹字符串中的所有尾部反斜杠
我需要一些帮助。我正在创建一个方法,该方法获取带有文件名的字符串并读取项目路径上的文件 json,反序列化一个对象。
但是在文件打开时,我想将路径与文件名连接起来,但它不起作用。
public static ObjectXpto ObjectXptoType(string filename)
{
ObjectXpto objectXpto = new ObjectXpto();
using (StreamReader file = File.OpenText(@"..\project\Data$"{filename}".json"))
{
JsonSerializer serializer = new JsonSerializer();
objectXpto = (ObjectXpto)serializer.Deserialize(file, typeof(ObjectXpto));
}
return objectXpto;
}
您可以在字符串前使用 $ 和 @ 符号来在字符串中键入变量名。
using (StreamReader file = File.OpenText($@"..\project\Data\{filename}.json"))
我想你想要这个:
public static ObjectXpto ObjectXptoType(string filename)
{
ObjectXpto objectXpto = new ObjectXpto();
using (StreamReader file = File.OpenText($"..\project\Data\{filename}.json"))
{
JsonSerializer serializer = new JsonSerializer();
objectXpto = (ObjectXpto)serializer.Deserialize(file, typeof(ObjectXpto));
}
return objectXpto;
}
}
安全的方法是使用Path.Combine or Path.Join :
var fullPath=Path.Combine(@"..\project\Data",$"{fileName}.json");
这会处理文件夹字符串中的所有尾部反斜杠