JD2022-TU1/main/tools/apps/JDSongConverter/Utils/FileUtils.cs

51 lines
1.4 KiB
C#

using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
namespace JDSongConverter.Utils
{
public class FileUtils
{
public static int GetFileCount(string directory)
{
int fileCount = 0;
var dirInfo = new DirectoryInfo(directory);
foreach (var dir in dirInfo.EnumerateDirectories())
{
fileCount += GetFileCount(dir.FullName);
}
fileCount += dirInfo.EnumerateFiles().Count();
return fileCount;
}
public static StreamWriter OpenOrCreateFile(string fileName)
{
FileStream fileStream;
if (File.Exists(fileName))
{
System.IO.File.SetAttributes(fileName, FileAttributes.Normal);
fileStream = new FileStream(fileName, FileMode.Create);
}
else
{
fileStream = File.Create(fileName);
}
return new StreamWriter(fileStream);
}
[DllImport("Shlwapi.dll", SetLastError = true, CharSet = CharSet.Auto)]
private extern static bool PathFileExists(StringBuilder path);
public static bool FastFileExists(string path)
{
var builder = new StringBuilder();
builder.Append(path);
return PathFileExists(builder);
}
}
}