// Directory of Window Form Application
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
// Directory of Any Loaded Assembly
string path = Path.GetDirectoryName(Assembly.GetAssembly(typeof(MyClass)).CodeBase);
File Stream – Open Files
//Open
existing file for read and write
using (var
fileStream = new FileStream(@"c:\file.txt", FileMode.Open))
{
}
//Open
existing file for reading
using (var
fileStream = new FileStream(@"c:\file.txt", FileMode.Open, FileAccess.Read))
{
}
//Open
existing file for writing
using (var
fileStream = new FileStream(@"c:\file.txt", FileMode.Open, FileAccess.Write))
{
}
//Open
file for writing(with seek to end), if the file doesn't exist create it
using (var
fileStream = new FileStream(@"c:\file.txt", FileMode.Append))
{
}
//Create
new file and open it for read and write, if the file exists overwrite it
using (var
fileStream = new FileStream(@"c:\file.txt", FileMode.Create))
{
}
//Create
new file and open it for read and write, if the file exists throw exception
using (var
fileStream = new FileStream(@"c:\file.txt", FileMode.CreateNew))
{
}
File Stream – Read Text Files
//Read
Text File into String
//It's
super easy to read whole text file into string using static class File and its
method File.ReadAllText.
string text = File.ReadAllText(@"c:\file.txt", Encoding.UTF8);
//Read
Text File into String(with StreamReader)
string text;
var fileStream = new FileStream(@"c:\file.txt", FileMode.Open, FileAccess.Read);
using (var
streamReader = new StreamReader(fileStream, Encoding.UTF8))
{
text = streamReader.ReadToEnd();
}
File Stream – Load Text from Files To String
//Read
Text File into String Array
//Again,
the easy way is to use static class File and it's method File.ReadAllLines.
string[] lines = File.ReadAllLines(@"c:\file.txt", Encoding.UTF8);
//Read
Text File into String Array(with StreamReader)
string[] lines;
var list = new List<string>();
var fileStream = new FileStream(@"c:\file.txt", FileMode.Open, FileAccess.Read);
using (var
streamReader = new StreamReader(fileStream, Encoding.UTF8))
{
string line;
while ((line = streamReader.ReadLine()) != null)
{
list.Add(line);
}
}
lines =
list.ToArray();
//Read
Text File Line by Line
foreach (string line in File.ReadLines(@"c:\file.txt", Encoding.UTF8))
{
// process the
line
}
//Read
Text File Line by Line(with StreamReader)
var fileStream = new FileStream(@"c:\file.txt", FileMode.Open, FileAccess.Read);
using (var
streamReader = new StreamReader(fileStream, Encoding.UTF8))
{
string line;
while ((line = streamReader.ReadLine()) != null)
{
// process the
line
}
}
//To load
text from file to string you can use StreamReader.
string text;
using (var
streamReader = new StreamReader(@"c:\file.txt", Encoding.UTF8))
{
text = streamReader.ReadToEnd();
}
Get File from Directory
//Get
files from directory
//Method
Directory.GetFiles returns string array with files names(full paths).
string[] filePaths = Directory.GetFiles(@"c:\MyDir\");
//Get
files from directory (with specified extension)
string[] filePaths = Directory.GetFiles(@"c:\MyDir\", "*.bmp");
//Get
files from directory(including all subdirectories)
//If you
want to search also in subfolders use parameter SearchOption.AllDirectories.
string[] filePaths = Directory.GetFiles(@"c:\MyDir\", "*.bmp", SearchOption.AllDirectories);
Delete All Files
//Delete
all files
string[] filePaths = Directory.GetFiles(@"c:\MyDir\");
foreach (string filePath
in filePaths)
File.Delete(filePath);
//Delete
all files(one - row example)
//To
delete all files using one code line, you can use Array.ForEach with
combination of anonymous method.
Array.ForEach(Directory.GetFiles(@"c:\MyDir\"),
delegate (string path) { File.Delete(path); });
//Directory
of windows forms application(.exe)
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
//Directory
of any loaded assembly(.exe or .dll)
string path = Path.GetDirectoryName(
Assembly.GetAssembly(typeof(MyClass)).CodeBase);
File Attributes – How To Get Or Set File Attributes
//Get
file attributes
string filePath = @"c:\test.txt";
FileAttributes fileAttributes = File.GetAttributes(filePath);
//Set
file attributes
File.SetAttributes(filePath, FileAttributes.Normal);
File.SetAttributes(filePath, FileAttributes.Archive | FileAttributes.ReadOnly);
// check
whether a file is read only
bool isReadOnly = ((File.GetAttributes(filePath) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly);
// check
whether a file is hidden
bool isHidden = ((File.GetAttributes(filePath) & FileAttributes.Hidden) == FileAttributes.Hidden);
// check
whether a file has archive attribute
bool isArchive = ((File.GetAttributes(filePath) & FileAttributes.Archive) == FileAttributes.Archive);
// check
whether a file is system file
bool isSystem = ((File.GetAttributes(filePath) & FileAttributes.System) == FileAttributes.System);
//Add
file attributes to current ones
File.SetAttributes(filePath, File.GetAttributes(filePath) | FileAttributes.Hidden);
//Set
(add) both archive and read only attributes
File.SetAttributes(filePath, File.GetAttributes(filePath) | (FileAttributes.Archive | FileAttributes.ReadOnly));
//Delete/clear
file attributes from current ones
File.SetAttributes(filePath, File.GetAttributes(filePath) & ~FileAttributes.Hidden);
//Delete/clear
archive and read only attributes
File.SetAttributes(filePath, File.GetAttributes(filePath)
& ~(FileAttributes.Archive | FileAttributes.ReadOnly));
File Stream – Read Files
//Read
file using FileStream
//First
create FileStream to open a file for reading.
//Then
call FileStream.Read in a loop until the whole file is read.
//Finally
close the stream.
public static byte[] ReadFile(string filePath)
{
byte[] buffer;
FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
try
{
int length = (int)fileStream.Length; // get file
length
buffer = new byte[length]; // create
buffer
int count;
// actual number of bytes read
int sum = 0;
// total number of bytes read
// read until
Read method returns 0 (end of the stream has been reached)
while ((count = fileStream.Read(buffer, sum, length - sum)) > 0)
sum += count; // sum is a
buffer offset for next reading
}
finally
{
fileStream.Close();
}
return buffer;
}
No comments:
Post a Comment