Visual C++ .NET/File Directory/FileStream

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Create and save binary file with FileStream

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::IO; void main() {

   FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
   array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
   for (int i = 0; i < data->Length-5; i += 5)
   {
       fso->Write(data, i, 5);
   }
   fso->Close();

}

 </source>


Get binary file length

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::IO; void main() {

   FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
   array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
   for (int i = 0; i < data->Length-5; i += 5)
   {
       fso->Write(data, i, 5);
   }
   fso->Close();
   FileInfo ^fi = gcnew FileInfo("file.dat");
   FileStream ^fsi = fi->OpenRead();
 int fileLength = (int)fi->Length;
   int b;
   while ((b = fsi->ReadByte()) != -1)
   {
       Console::Write((Char)b);
   }
   fsi->Position = 0;
   array<unsigned char>^ ca = gcnew array<unsigned char>(fileLength);
   fsi->Read(ca, 0, fileLength);
   for (int i = 0; i < ca->Length; i++)
   {
       Console::Write((Char)ca[i]);
   }
   fsi->Close();
   fi->Delete();

}

 </source>


Read binary file to an array

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::IO; void main() {

   FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
   array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
   for (int i = 0; i < data->Length-5; i += 5)
   {
       fso->Write(data, i, 5);
   }
   fso->Close();
   FileInfo ^fi = gcnew FileInfo("file.dat");
   FileStream ^fsi = fi->OpenRead();
 int fileLength = (int)fi->Length;
   int b;
   while ((b = fsi->ReadByte()) != -1)
   {
       Console::Write((Char)b);
   }
   fsi->Position = 0;
   array<unsigned char>^ ca = gcnew array<unsigned char>(fileLength);
   fsi->Read(ca, 0, fileLength);
   for (int i = 0; i < ca->Length; i++)
   {
       Console::Write((Char)ca[i]);
   }
   fsi->Close();
   fi->Delete();

}

 </source>


Read byte from binary file

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::IO; void main() {

   FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
   array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
   for (int i = 0; i < data->Length-5; i += 5)
   {
       fso->Write(data, i, 5);
   }
   fso->Close();
   FileInfo ^fi = gcnew FileInfo("file.dat");
   FileStream ^fsi = fi->OpenRead();
 int fileLength = (int)fi->Length;
   int b;
   while ((b = fsi->ReadByte()) != -1)
   {
       Console::Write((Char)b);
   }
   fsi->Position = 0;
   array<unsigned char>^ ca = gcnew array<unsigned char>(fileLength);
   fsi->Read(ca, 0, fileLength);
   for (int i = 0; i < ca->Length; i++)
   {
       Console::Write((Char)ca[i]);
   }
   fsi->Close();
   fi->Delete();

}

 </source>


Rewind by setting the binary file reading position

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::IO; void main() {

   FileStream ^fso = gcnew FileStream("file.dat", FileMode::Create,FileAccess::Write, FileShare::None);
   array<unsigned char>^ data = gcnew array<unsigned char> { "T", "h", "i","\r", "\n" };
   for (int i = 0; i < data->Length-5; i += 5)
   {
       fso->Write(data, i, 5);
   }
   fso->Close();
   FileInfo ^fi = gcnew FileInfo("file.dat");
   FileStream ^fsi = fi->OpenRead();
 int fileLength = (int)fi->Length;
   int b;
   while ((b = fsi->ReadByte()) != -1)
   {
       Console::Write((Char)b);
   }
   fsi->Position = 0;
   array<unsigned char>^ ca = gcnew array<unsigned char>(fileLength);
   fsi->Read(ca, 0, fileLength);
   for (int i = 0; i < ca->Length; i++)
   {
       Console::Write((Char)ca[i]);
   }
   fsi->Close();
   fi->Delete();

}

 </source>