我正在研究WCF服务应用程序。我想在我的一个函数中创建一个文件 所以现在我这样做了。首先我去目录创建一个文件,然后我做读/写。
string path = AppDomain.CurrentDomain.BaseDirectory;
path += "Emp_data\\json_data.json";
StreamReader reader = new StreamReader(path);
StreamWriter writer = new StreamWriter(path);
我知道我这样做的方式不对。请建议我一个更好的方法,以便如果没有文件和文件夹它将自动创建。
答案 0 :(得分:1)
创建文件与WCF无关。无论上下文如何,这样做都是一样的。我更喜欢在静态File类上使用这些方法。
创建文件很简单。
string path = AppDomain.CurrentDomain.BaseDirectory;
path += "Emp_data\\json_data.json";
using(FileStream fs = System.IO.File.Create(path))
{
}
如果您只想写数据,可以这样做......
File.WriteAllText(path, contentsIWantToWrite);
答案 1 :(得分:1)
在WCF中创建文件没有什么额外的事情,所以你可以这样做
string path = AppDomain.CurrentDomain.BaseDirectory;
String dir = Path.GetDirectoryName(path);
dir += "\\Emp_data";
string filename = dir+"\\Json_data.json";
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir); // inside the if statement
FileStream fs = File.Open(filename,FileMode.OpenOrCreate, FileAccess.ReadWrite);
StreamReader reader = new StreamReader(fs);
答案 2 :(得分:0)
您的问题通常与WCF服务无关。
这样的东西会起作用(如果你对该文件有写入权限):
String dir = Path.GetDirectoryName(path);
if (!Directory.Exists(dir))
Directory.CreateDirectory(dir)
using (FileStream fs = File.Open(path, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
// work with fs to read from and/or write to file, maybe this
using (StreamReader reader = new StreamReader(fs))
{
using (StreamWriter writer = new StreamWriter(fs))
{
// need to sync read and write somehow
}
}
}