using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 文件
{
class Program
{
static void Main(string[] args)
{
//文件操作
#if false
//File类
//判断文件是否存在
string filePath = "D:\\123.txt";
string writeStr = "床前明月光,\n疑是地上霜,\n举头望明月,\n低头思归乡。\n";
string readStr = "";
if (File.Exists(filePath))
{
readStr = File.ReadAllText(filePath);
Console.WriteLine("读取的内容是" + readStr);
}
else
{
//不存在就创建
//这种方式是没有就创建,第二次写会将第一次的内容覆盖掉
File.WriteAllText(filePath, writeStr);
Console.WriteLine("写入成功");
}
//下面这种方式是追加的方式
File.AppendAllText(filePath, "\n这句话是后来追加的!\n");
#endif
#if false
//Directory 和 Directoryinfo
//Directory 静态类,无需实例化
//Directoryinfo 非静态类,需要实例化 频繁操作某个目录时,使用这个类
//GetDirectories 获取指定目录下所有的文件夹 不包含子文件夹
string dirPath = "D:\\软件包";
string[] dirAll = Directory.GetDirectories(dirPath);
Console.WriteLine("所有的文件夹======================\n");
foreach (var item in dirAll)
{
Console.WriteLine(item);
}
string[] fileAll = Directory.GetFiles(dirPath);
Console.WriteLine("所有的文件======================\n");
foreach (var item in fileAll)
{
Console.WriteLine(item);
}
#endif
#if false
//Environment
int num = Environment.ProcessorCount;
Console.WriteLine("处理器个数:{0}", num);
Console.WriteLine("操作系统的版本:" + Environment.OSVersion);
Console.WriteLine("name:" + Environment.MachineName);
Console.ReadKey();
#endif
//FileStream类
string filePath = "D:\\123.txt";
string writeStr = "床前明月光,\n疑是地上霜,\n举头望明月,\n低头思归乡。\n";
//File.Delete(filePath);
if (File.Exists(filePath))
{
//读取
FileStream fileS = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
byte[] readBytes = new byte[fileS.Length];
fileS.Read(readBytes, 0, readBytes.Length);
string readStr = System.Text.Encoding.UTF8.GetString(readBytes);
Console.WriteLine(readStr);
fileS.Close();
}
else
{
//创建
FileStream fileS = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
byte[] writeBytes = System.Text.Encoding.UTF8.GetBytes(writeStr); //将字符串转换成字节数粗
fileS.Write(writeBytes, 0, writeBytes.Length);
Console.WriteLine("写入成功");
fileS.Close();
}
//追加数据 方法一 通过使用Seek的方式 将光标移动到文件结尾
//FileStream fileS2 = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
//byte[] writeBytes2 = System.Text.Encoding.UTF8.GetBytes(writeStr); //将字符串转换成字节数粗
将文件流移动到文件末尾 从末尾追加
//fileS2.Seek(0, SeekOrigin.End);
//fileS2.Write(writeBytes2, 0, writeBytes2.Length);
//Console.WriteLine("追加成功");
//fileS2.Close();
//方法二 直接使用Append的方式
FileStream fileS2 = new FileStream(filePath, FileMode.Append, FileAccess.Write);
byte[] writeBytes2 = System.Text.Encoding.UTF8.GetBytes(writeStr); //将字符串转换成字节数粗
fileS2.Write(writeBytes2, 0, writeBytes2.Length);
Console.WriteLine("追加成功");
fileS2.Close();
Console.ReadKey();
}
}
}