using System;
|
using System.Collections.Generic;
|
|
namespace Shared.Common
|
{
|
public class Global
|
{
|
/// <summary>
|
/// 获取住宅文件夹下面的文件
|
/// </summary>
|
/// <param name="fileName">File name.</param>
|
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<string> FileListByHomeId()
|
{
|
var list = new List<string> { };
|
var path = Config.Instance.FullPath;
|
if (!System.IO.Directory.Exists(path)) {
|
return new List<string> { };
|
}
|
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;
|
}
|
|
/// <summary>
|
/// 写文件到住宅文件夹目录
|
/// </summary>
|
/// <param name="fileName">File name.</param>
|
/// <param name="bytes">Bytes.</param>
|
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);
|
}
|
/// <summary>
|
/// 删除住宅下面的文件
|
/// </summary>
|
/// <param name="fileName">File name.</param>
|
public static void DeleteFilebyHomeId(string fileName)
|
{
|
var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
|
System.IO.File.Delete(path);
|
}
|
|
/// <summary>
|
/// 是否存在当前文件
|
/// </summary>
|
/// <param name="fileName">File name.</param>
|
public static bool IsExistsByHomeId(string fileName)
|
{
|
var path = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
|
return System.IO.File.Exists(path);
|
}
|
|
/// <summary>
|
/// 更新文件名称
|
/// </summary>
|
/// <param name="oldFilePath">Old file path.</param>
|
/// <param name="newFilePath">New file path.</param>
|
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);
|
}
|
}
|
|
/// <summary>
|
/// 在当前住宅文件夹下创建一个空的文件夹(tz)
|
/// </summary>
|
/// <param name="directoryName">需要创建的文件夹名字</param>
|
/// <param name="clear">如果文件夹存在,是否需要清空文件夹</param>
|
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);
|
}
|
}
|
}
|
|
/// <summary>
|
/// 将信息写入指定的文件夹里(根目录为当前住宅的文件夹)(tz)
|
/// </summary>
|
/// <param name="directoryName">指定的文件夹路径</param>
|
/// <param name="fileName">文件名</param>
|
/// <param name="bytes">内容</param>
|
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);
|
}
|
|
/// <summary>
|
/// 读取指定的文件夹里的指定的文件(根目录为当前住宅的文件夹)(tz)
|
/// </summary>
|
/// <param name="directoryName">指定的文件夹路径</param>
|
/// <param name="fileName">文件名</param>
|
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);
|
}
|
|
/// <summary>
|
/// 移动文件(tz)
|
/// </summary>
|
/// <param name="oldFile">需要移动的文件(FullName)</param>
|
/// <param name="newFile">要移动到的位置(FullName)</param>
|
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);
|
}
|
|
/// <summary>
|
/// 将指定文件夹里面的全部文件移动到当前住宅的文件夹内(tz)
|
/// </summary>
|
/// <param name="directory"></param>
|
/// <param name="deleteDirectory">处理完之后,是否把文件夹删除</param>
|
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<string>();
|
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);
|
}
|
}
|
}
|
}
|