51 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
|
|
|
|
}
|