project structure changed

This commit is contained in:
2021-08-24 20:35:02 +03:00
parent 60e3bc6251
commit 13421f2c77
16 changed files with 961 additions and 313 deletions

View File

@@ -64,8 +64,12 @@ namespace DTLib.Filesystem
for (int i = 0; i < files.Count; i++)
File.Delete(files[i]);
for (int i = subdirs.Count - 1; i >= 0; i--)
System.IO.Directory.Delete(subdirs[i]);
System.IO.Directory.Delete(dir);
{
PublicLog.Log($"deleting {subdirs[i]}\n");
if (Directory.Exists(subdirs[i])) System.IO.Directory.Delete(subdirs[i], true);
}
PublicLog.Log($"deleting {dir}\n");
if (Directory.Exists(dir)) System.IO.Directory.Delete(dir, true);
}
public static string[] GetFiles(string dir) => System.IO.Directory.GetFiles(dir);
@@ -112,5 +116,20 @@ namespace DTLib.Filesystem
}
public static string GetCurrent() => System.IO.Directory.GetCurrentDirectory();
public static void GrantAccess(string fullPath)
{
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(fullPath);
System.Security.AccessControl.DirectorySecurity dirSecurity = dirInfo.GetAccessControl();
dirSecurity.AddAccessRule(new System.Security.AccessControl.FileSystemAccessRule(
new System.Security.Principal.SecurityIdentifier(
System.Security.Principal.WellKnownSidType.WorldSid, null),
System.Security.AccessControl.FileSystemRights.FullControl,
System.Security.AccessControl.InheritanceFlags.ObjectInherit |
System.Security.AccessControl.InheritanceFlags.ContainerInherit,
System.Security.AccessControl.PropagationFlags.NoPropagateInherit,
System.Security.AccessControl.AccessControlType.Allow));
dirInfo.SetAccessControl(dirSecurity);
}
}
}

View File

@@ -9,8 +9,9 @@ namespace DTLib.Filesystem
public static bool Exists(string file) => System.IO.File.Exists(file);
// если файл не существует, создаёт файл, создаёт папки из его пути
public static void Create(string file)
public static void Create(string file, bool delete_old = false)
{
if (delete_old && File.Exists(file)) File.Delete(file);
if (!File.Exists(file))
{
if (file.Contains("\\")) Directory.Create(file.Remove(file.LastIndexOf('\\')));
@@ -65,9 +66,8 @@ namespace DTLib.Filesystem
}
public static System.IO.FileStream OpenWrite(string file)
{
if (Exists(file)) Delete(file);
File.Create(file);
return System.IO.File.OpenWrite(file);
File.Create(file, true);
return System.IO.File.Open(file, System.IO.FileMode.OpenOrCreate);
}
public static System.IO.FileStream OpenAppend(string file)
{