C#目录创建,文件创建
我正在使用以下代码:C#目录创建,文件创建,c#,directory,C#,Directory,我正在使用以下代码: private void Maker_Load(object sender, EventArgs e) { string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); string specificFolder = Path.Combine(folder, "ListMaker"); string speci
private void Maker_Load(object sender, EventArgs e)
{
string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
string specificFolder = Path.Combine(folder, "ListMaker");
string specificFile = Path.Combine(specificFolder, "info.mrfl");
string specificFile2 = Path.Combine(specificFolder, "check.mrfl");
if (!Directory.Exists(specificFolder))
{
Directory.CreateDirectory(specificFolder);
}
else if (!File.Exists(specificFile))
{
File.Create(specificFile);
}
else if (!File.Exists(specificFile2))
{
File.Create(specificFile2);
}
else
{
FileStream fs = new FileStream(specificFolder + "\\check.mrfl", FileMode.Open);
Byte readSingleByte = (Byte)fs.ReadByte();
int a = readSingleByte;
fs.Close();
if (a == 01)
{
checkBox1.CheckState = CheckState.Checked;
FileStream fs2 = new FileStream(specificFolder + "\\Info.mrfl", FileMode.Open);
Byte[] ename = new Byte[20];
Byte[] phone = new Byte[40];
Byte[] email = new Byte[60];
fs2.Seek(0, SeekOrigin.Begin);
fs2.Read(ename, 0, ename.Length);
fs2.Read(phone, 0, phone.Length);
fs2.Read(email, 0, email.Length);
text_ename.Text = Encoding.Unicode.GetString(ename);
text_phone.Text = Encoding.Unicode.GetString(phone);
text_email.Text = Encoding.Unicode.GetString(email);
fs2.Close();
}
else
{
checkBox1.CheckState = CheckState.Unchecked;
text_ename.Text = "";
text_phone.Text = "";
text_email.Text = "";
}
}
结果:
仅创建了“ListMaker”文件夹
为了了解更多信息,我编辑了我的帖子。
我想保存一个目录。里面有两个文件。
选中复选框后,每个文件都会保存特定的二进制值
谢谢你的帮助。很抱歉,我不会说英语。你的
else if
会导致你的代码只运行第一个if
,然后停止运行
你需要像这样的东西:
if (!Directory.Exists(specificFolder)) {
Directory.CreateDirectory(specificFolder);
}
if (!File.Exists(specificFile)) {
File.Create(specificFile);
}
if (!File.Exists(specificFile2)) {
File.Create(specificFile2);
}
然后,您需要在执行任何其他需要执行的操作之前确认文件已创建
if(File.Exists(specificFile)) {
//do things
}
等等
顺便说一句,如果您创建并试图编辑这些文件(我相信C#会保持您创建的文件处于打开状态),您可能会遇到IOExceptions
我建议您创建文件,如
File.Create(specificFile).Close()
丢失两条else if
语句中的else
。你希望这三件事各自独立地发生。你需要准确地告诉我们程序应该做什么,而不是你的观察结果是什么。否则我们只是假设你在编辑我的帖子时希望这三件事都发生。添加更多信息。谢谢。谢谢你的工作!File.Create(specificFile.Close()<-是一个很好的提示