📄 file.cs
字号:
int block2 = 2;
for (int i = 0; i < paths.Length - 1; i++)
{
disk_.readblock1(block1);
string[] name = new string[8];
for (int n = 0; n < 8; n++)
{
name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
name[n] = name[n].Trim();
}
for (int m = 0; m < 8; m++)
{
if (name[m] == paths[i + 1])
mubiaoweizhi = m;
}
if (mubiaoweizhi == -1)
{
disk_.readblock1(block2);
for (int n = 0; n < 8; n++)
{
name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
name[n] = name[n].Trim();
}
for (int m = 0; m < 8; m++)
{
if (name[m] == paths[i + 1])
mubiaoweizhi = m;
}
}
block1 = Convert.ToInt32(disk_.buffer1[mubiaoweizhi * 16 + 11]);
block2 = Convert.ToInt32(disk_.buffer1[mubiaoweizhi * 16 + 12]);
}
string[,] tonode;
int times = 0;
disk_.readblock1(block1);
for (int i = 0; i < 8; i++)
{
if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 1)//如果是已经建成的fcb块,进行处理.预留的字节作为是否已经建成fcb的标志
{
times++;
}
}
disk_.readblock1(block2);
for (int i = 0; i < 8; i++)
{
if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 1)//如果是已经建成的fcb块,进行处理.预留的字节作为是否已经建成fcb的标志
{
times++;
}
}
tonode = new string[times, 3];//确定有多少个文件
int c = 0;
disk_.readblock1(block1);
for (int i = 0; i < 8; i++)
{
if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 1)//如果是已经建成的fcb块,进行处理.预留的字节作为是否已经建成fcb的标志
{
string[] fcb = new string[3];
fcb[0] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 5]));
fcb[0] = fcb[0].Trim();
fcb[1] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 6])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 7])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 8]));
fcb[1] = fcb[1].Trim();
fcb[2] = Convert.ToString(disk_.buffer1[i * 16 + 9]);
tonode[c, 0] = fcb[0];
tonode[c, 1] = fcb[1];
tonode[c, 2] = fcb[2];
c++;
}
}
disk_.readblock1(block2);
for (int i = 0; i < 8; i++)
{
if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 1)//如果是已经建成的fcb块,进行处理.预留的字节作为是否已经建成fcb的标志
{
string[] fcb = new string[3];
fcb[0] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 5]));
fcb[0] = fcb[0].Trim();
fcb[1] = Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 6])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 7])) + Convert.ToString(Convert.ToChar(disk_.buffer1[i * 16 + 8]));
fcb[1] = fcb[1].Trim();
fcb[2] = Convert.ToString(disk_.buffer1[i * 16 + 9]);
tonode[c, 0] = fcb[0];
tonode[c, 1] = fcb[1];
tonode[c, 2] = fcb[2];
c++;
}
}
return tonode;
}
public bool created(string currdir, string dirn)//创建目录
{
string[] paths;
int mubiaoweizhi = -1;
paths = splitfullpath(currdir);
if (paths[0] == "C")
{
disk_.diskfilename = disk_.diskfile[0];
}
else if (paths[0] == "D")
{
disk_.diskfilename = disk_.diskfile[1];
}
else
{
disk_.diskfilename = disk_.diskfile[0];
}
int block1 = 1;
int block2 = 2;
for (int i = 0; i < paths.Length - 1; i++)
{
disk_.readblock1(block1);
string[] name = new string[8];
for (int n = 0; n < 8; n++)
{
name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
name[n] = name[n].Trim();
}
for (int m = 0; m < 8; m++)
{
if (name[m] == paths[i + 1])
mubiaoweizhi = m;
}
if (mubiaoweizhi == -1)
{
disk_.readblock1(block2);
for (int n = 0; n < 8; n++)
{
name[n] = Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 0])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 1])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 2])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 3])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 4])) + Convert.ToString(Convert.ToChar(disk_.buffer1[n * 16 + 5]));
name[n] = name[n].Trim();
}
for (int m = 0; m < 8; m++)
{
if (name[m] == paths[i + 1])
mubiaoweizhi = m;
}
}
block1 = Convert.ToInt32(disk_.buffer1[mubiaoweizhi * 16 + 11]);
block2 = Convert.ToInt32(disk_.buffer1[mubiaoweizhi * 16 + 12]);
}
disk_.readblock1(block1);
mubiaoweizhi = -1;
for (int i = 0; i < 8; i++)
{
if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 0)
mubiaoweizhi = i;
}
if (mubiaoweizhi == -1)
{
disk_.readblock1(block2);
for (int i = 0; i < 8; i++)
{
if (Convert.ToInt32(disk_.buffer1[i * 16 + 15]) == 0)
mubiaoweizhi = i;
}
char[] fcb = new char[16];
char[] fn = new char[dirn.Length];
//char[] en = new char[ename.Length];
fn = dirn.ToCharArray();
//en = ename.ToCharArray();
byte[] byfn = new byte[6];
//byte[] byen = new byte[3];
for (int i = 0; i < fn.Length; i++)
{
byfn[i] = Convert.ToByte(fn[i]);
}
for (int i = 5; i > fn.Length - 1; i--)
{
byfn[i] = Convert.ToByte(' ');
}
//byen[0] = Convert.ToByte(en[0]);
//byen[1] = Convert.ToByte(en[1]);
//byen[2] = Convert.ToByte(en[2]);
// 寻找位置写入fcb
int bk1 = disk_.qblock();
int bk2 = disk_.qblock();
disk_.readblock1(block2);
disk_.buffer1[mubiaoweizhi * 16 + 11] = Convert.ToByte(bk1);
disk_.buffer1[mubiaoweizhi * 16 + 12] = Convert.ToByte(bk2);
disk_.buffer1[mubiaoweizhi * 16 + 0] = byfn[0];
disk_.buffer1[mubiaoweizhi * 16 + 1] = byfn[1];
disk_.buffer1[mubiaoweizhi * 16 + 2] = byfn[2];
disk_.buffer1[mubiaoweizhi * 16 + 3] = byfn[3];
disk_.buffer1[mubiaoweizhi * 16 + 4] = byfn[4];
disk_.buffer1[mubiaoweizhi * 16 + 5] = byfn[5];
//disk_.buffer1[mubiaoweizhi * 16 + 6] = byen[0];
//disk_.buffer1[mubiaoweizhi * 16 + 7] = byen[1];
//disk_.buffer1[mubiaoweizhi * 16 + 8] = byen[2];
disk_.buffer1[mubiaoweizhi * 16 + 15] = Convert.ToByte(1);
disk_.buffer1[mubiaoweizhi * 16 + 9] = Convert.ToByte(0);
disk_.writeblock1(block2);
}
else
{
//disk_.readblock1(1);
char[] fcb = new char[16];
char[] fn = new char[dirn.Length];
//char[] en = new char[ename.Length];
fn = dirn.ToCharArray();
//en = ename.ToCharArray();
byte[] byfn = new byte[6];
//byte[] byen = new byte[3];
for (int i = 0; i < fn.Length; i++)
{
byfn[i] = Convert.ToByte(fn[i]);
}
for (int i = 5; i > fn.Length - 1; i--)
{
byfn[i] = Convert.ToByte(' ');
}
//byen[0] = Convert.ToByte(en[0]);
//byen[1] = Convert.ToByte(en[1]);
//byen[2] = Convert.ToByte(en[2]);
// 寻找位置写入fcb
int bk1 = disk_.qblock();
int bk2 = disk_.qblock();
disk_.readblock1(block1);
disk_.buffer1[mubiaoweizhi * 16 + 11] = Convert.ToByte(bk1);
disk_.buffer1[mubiaoweizhi * 16 + 12] = Convert.ToByte(bk2);
disk_.buffer1[mubiaoweizhi * 16 + 0] = byfn[0];
disk_.buffer1[mubiaoweizhi * 16 + 1] = byfn[1];
disk_.buffer1[mubiaoweizhi * 16 + 2] = byfn[2];
disk_.buffer1[mubiaoweizhi * 16 + 3] = byfn[3];
disk_.buffer1[mubiaoweizhi * 16 + 4] = byfn[4];
disk_.buffer1[mubiaoweizhi * 16 + 5] = byfn[5];
//disk_.buffer1[mubiaoweizhi * 16 + 6] = byen[0];
//disk_.buffer1[mubiaoweizhi * 16 + 7] = byen[1];
//disk_.buffer1[mubiaoweizhi * 16 + 8] = byen[2];
disk_.buffer1[mubiaoweizhi * 16 + 15] = Convert.ToByte(1);
disk_.buffer1[mubiaoweizhi * 16 + 9] = Convert.ToByte(0);
disk_.writeblock1(block1);
}
return true;
}
public bool deletefile(string filefullname)//删除文件
{
string filename = "";
string extname = "";
splitfilename(filefullname, ref filename, ref extname);
string[] paths;
int mubiaoweizhi = -1;
paths = splitfullpath(currentdir);
if (paths[0] == "C")
{
disk_.diskfilename = disk_.diskfile[0];
}
else if (paths[0] == "D")
{
disk_.diskfilename = disk_.diskfile[1];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -