Ошибка в готовом коде - C#
Формулировка задачи:
Добрый день!
Мне сказали, что в каком-то из нижеприведенных кусков кода есть ошибка. Я пробую и так, и так, в среду урок, а у меня что-то в нём не одна ошибка, а очень много. Пожалуйста, подскажите, что в нём не так?
Огромное спасибо заранее!
class FileExplorer
{
static void Main(string[] args)
{
GetDirs("C:\\windows");
Console.ReadKey();
}
static void GetDirs(string nameDir)
{
Console.WriteLine("Directory {0}",nameDir);
foreach(string dirname in Directory.EnumerateDirectories(nameDir))
{
try
{
foreach (string filename in Directory.EnumerateFiles(dirname))
{
Console.WriteLine("File {0}", filename);
}
GetDirs(dirname);
}
catch
{
continue;
}
}
}
}
class ProgramFileInfo
{
static void Main(string[] args)
{
string curdir = Directory.GetCurrentDirectory();
FileStream fs = File.Create("Test.txt");
fs.Close();
File.Copy("Test.txt", "CopyTest.txt");
File.Delete("Test.txt");
bool x = File.Exists("Test.txt");
FileInfo file = new FileInfo("CopyTest.txt");
FileStream fstrim = file.OpenWrite();
fstrim.WriteByte((byte)'a'); // Запись одного байта в файл
fstrim.Close();
Console.ReadKey();
//------------------------------------------------------------------------
fstrim = file.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite);
fstrim.Seek(0, SeekOrigin.Begin);
for (int i = 0; i < 256; i++)
{
fstrim.WriteByte((byte)i);
}
fstrim.Position = 0;
for (int i = 1; i < 256; i++)
{
Console.Write("{0} ",
fstrim.ReadByte()); // чтение одного байта из файла
}
fstrim.Close();
Console.ReadKey();
//----------------------------------------------------------------------------
FileInfo fileTxt = new FileInfo("Test01.txt");
StreamWriter fsText = fileTxt.CreateText();
fsText.WriteLine("1.string 1");
fsText.WriteLine("2.string 2"); // Запись строки в файл
fsText.WriteLine("3.string 3");
fsText.Close();
StreamReader sr = fileTxt.OpenText();
string s0 = null;
while ((s0 = sr.ReadLine()) != null) // чтение строк из файла в цикле
Console.WriteLine(s0); // S0 содержит текущую строку потока sr;
sr.Close();
Console.ReadKey();
}
}
class ProgramBinary
{
static void Main(string[] args)
{
Console.WriteLine("Классы и функции пространства имен System.IO");
Console.WriteLine("");
string DirName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string filename = Path.Combine(DirName, "tempData.dat");
FileStream fs = new FileStream(filename,
FileMode.OpenOrCreate, FileAccess.ReadWrite);
BinaryWriter bw = new BinaryWriter(fs);
// BinaryWriter bw = new BinaryWriter(fs,Encoding.Default);
string str = "русский текст";
bw.Write(str);
int n0 = 100;
bw.Write(n0);
bw.Write(150.25F);
bw.Write(500.001);
bw.Write(true);
char[] charArray = {'X','Y','Z','A' };
bw.Write(charArray);
bw.BaseStream.Position = 0;
Console.WriteLine("Чтение файла");
Console.WriteLine("");
BinaryReader br = new BinaryReader(fs);
while (br.PeekChar() != -1)
{
Console.Write(br.ReadByte());
}
Console.WriteLine("");
bw.BaseStream.Position = 0;
Console.WriteLine(br.ReadString());
Console.WriteLine(br.ReadUInt32());
Console.WriteLine(br.ReadSingle());
Console.WriteLine(br.ReadDouble());
Console.WriteLine(br.ReadBoolean());
Console.WriteLine(br.ReadChars(4));
Console.ReadKey();
}
}
class ProgramSerialise
{
static void WritePersons(Persons ps)
{
while (true)
{
Persona p = new Persona();
Console.Write("Фамилия:");
p.fam = Console.ReadLine();
if (p.fam.StartsWith("exit")) break;
Console.Write("Имя:");
p.name = Console.ReadLine();
Console.Write("Отчество:");
p.otch = Console.ReadLine();
ps.Add(p);
}
}
static void Main(string[] args)
{
Console.WriteLine("Cериализация объектов");
Console.WriteLine("");
Persons ps = new Persons();
string DirName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string filename = Path.Combine(DirName, "persons.dat");
if (!File.Exists(filename))
{
/*
Persona rep = new Persona("Иван", "Иванов", "Иванович");
Persona rep1 = new Persona("Петр", "Петров", "Иванович");
Persona rep2 = new Persona("Сидор", "Сидоров", "Иванович");
ps.Add(rep);
ps.Add(rep1);
ps.Add(rep2);
*/
WritePersons(ps);
Console.WriteLine("Cериализация объекта Persons");
FileStream fs = new FileStream(filename, FileMode.Append);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, ps);
}
else
{
Console.WriteLine("Десериализация объекта Persons");
FileStream fs = new FileStream(filename, FileMode.Open);
BinaryFormatter bf = new BinaryFormatter();
Persons persons = bf.Deserialize(fs) as Persons;
fs.Close();
foreach (Persona per in persons)
{
Console.WriteLine("{0} {1} {2}",per.fam,per.name,per.otch);
}
WritePersons(ps);
if (File.Exists(filename)) File.Delete(filename);
FileStream fs1 = new FileStream(filename, FileMode.Append);
BinaryFormatter bf1 = new BinaryFormatter();
bf1.Serialize(fs1, ps);
}
Console.ReadKey();
#region пользовательская сериализация
Console.WriteLine("Ползовательская Cериализация объектов");
Console.WriteLine("");
string filename1 = Path.Combine(DirName, "secret.dat");
if (!File.Exists(filename1))
{
Secret ss = new Secret("123456", 125);
FileStream fstr = File.Create(filename1);
BinaryFormatter formater = new BinaryFormatter();
formater.Serialize(fstr, ss);
fstr.Close();
}
else
{
FileStream fstr = File.OpenRead(filename1);
BinaryFormatter formater = new BinaryFormatter();
Secret ss = formater.Deserialize(fstr) as Secret;
Console.WriteLine("Parol {0} Cod {1}",ss.parol,ss.cod);
}
Console.ReadKey();
#endregion
}
}Решение задачи: «Ошибка в готовом коде»
textual
Листинг программы
in Directory.GetFiles(nameDir))