using System;
using System.Collections.Generic;
namespace Shared.Common
{
public class Global
{
///
/// 获取住宅文件夹下面的文件
///
/// File name.
public static byte[] ReadFileByHomeId(string fileName)
{
var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
return Shared.IO.FileUtils.ReadFile(path);
}
public static List FileListByHomeId()
{
var list = new List { };
var path = Config.Instance.FullPath;
if (!System.IO.Directory.Exists(path)) {
return new List { };
}
var files = System.IO.Directory.GetFiles(path);
foreach (var file in files)
{
var f = file.Substring(path.Length + 1);
System.Console.WriteLine(f);
list.Add(f);
}
return list;
}
///
/// 写文件到住宅文件夹目录
///
/// File name.
/// Bytes.
public static void WriteFileByBytesByHomeId(string fileName, byte[] bytes)
{
//如果没有存在住宅目录,先创建
if (!System.IO.Directory.Exists(Config.Instance.FullPath))
{
System.IO.Directory.CreateDirectory(Config.Instance.FullPath);
}
var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
Shared.IO.FileUtils.WriteFileByBytes(path, bytes);
}
///
/// 删除住宅下面的文件
///
/// File name.
public static void DeleteFilebyHomeId(string fileName)
{
var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
System.IO.File.Delete(path);
}
///
/// 是否存在当前文件
///
/// File name.
public static bool IsExistsByHomeId(string fileName)
{
var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
return System.IO.File.Exists(path);
}
///
/// 更新文件名称
///
/// Old file path.
/// New file path.
public static void ReNameFileByHomeId(string oldFilePath, string newFilePath)
{
if (oldFilePath == newFilePath)
{
return;
}
var fileInfo = new System.IO.FileInfo(Config.Instance.FullPath + oldFilePath);
if (fileInfo.Exists)
{
DeleteFilebyHomeId(newFilePath);
fileInfo.MoveTo(Config.Instance.FullPath + newFilePath);
}
}
public static void CreateHomeDirectory(string homeId)
{
var path= System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Config.Instance.Guid, homeId);
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
}
///
/// 在当前住宅文件夹下创建一个空的文件夹(tz)
///
/// 需要创建的文件夹名字
/// 如果文件夹存在,是否需要清空文件夹
public static void CreateEmptyDirectory(string directoryName, bool clear = false)
{
string creatName = Config.Instance.FullPath;
creatName = System.IO.Path.Combine(creatName, directoryName);
if (!System.IO.Directory.Exists(creatName))
{
System.IO.Directory.CreateDirectory(creatName);
}
else if (clear == true)
{
//如果存在,则清空全部文件
var files = System.IO.Directory.GetFiles(creatName);
foreach (var file in files)
{
System.IO.File.Delete(file);
}
}
}
///
/// 将信息写入指定的文件夹里(根目录为当前住宅的文件夹)(tz)
///
/// 指定的文件夹路径
/// 文件名
/// 内容
public static void WriteFileToDirectoryByBytes(string directoryName, string fileName, byte[] bytes)
{
//先去创建它吧
Global.CreateEmptyDirectory(directoryName);
//拼接路径
string fullName = Config.Instance.FullPath;
fullName = System.IO.Path.Combine(fullName, directoryName);
fullName = System.IO.Path.Combine(fullName, fileName);
//写入内容
Shared.IO.FileUtils.WriteFileByBytes(fullName, bytes);
}
///
/// 读取指定的文件夹里的指定的文件(根目录为当前住宅的文件夹)(tz)
///
/// 指定的文件夹路径
/// 文件名
public static byte[] ReadFileByDirectory(string directoryName, string fileName)
{
//拼接路径
string fullName = Config.Instance.FullPath;
fullName = System.IO.Path.Combine(fullName, directoryName);
fullName = System.IO.Path.Combine(fullName, fileName);
if (System.IO.File.Exists(fullName) == false)
{
return null;
}
return Shared.IO.FileUtils.ReadFile(fullName);
}
///
/// 移动文件(tz)
///
/// 需要移动的文件(FullName)
/// 要移动到的位置(FullName)
public static void MoveFileToDirectory(string oldFile, string newFile)
{
//先删除
if (System.IO.File.Exists(newFile) == true)
{
System.IO.File.Delete(newFile);
}
System.IO.File.Move(oldFile, newFile);
}
///
/// 将指定文件夹里面的全部文件移动到当前住宅的文件夹内(tz)
///
///
/// 处理完之后,是否把文件夹删除
public static void MoveDirectoryFileToHomeDirectory(string directory, bool deleteDirectory = false)
{
string rootPath = Config.Instance.FullPath;
string fulldirectory = System.IO.Path.Combine(rootPath, directory);
if (System.IO.Directory.Exists(fulldirectory) == false)
{
return;
}
var files = System.IO.Directory.GetFiles(fulldirectory);
var listFile = new List();
foreach (var file in files)
{
var f = file.Substring(fulldirectory.Length + 1);
listFile.Add(f);
}
foreach (var file in listFile)
{
string oldFile = System.IO.Path.Combine(fulldirectory, file);
string newFile = System.IO.Path.Combine(rootPath, file);
//移动文件
Global.MoveFileToDirectory(oldFile, newFile);
}
if (deleteDirectory == true)
{
System.IO.Directory.Delete(fulldirectory);
}
}
}
}