feat: 取消校验文件权限
不是核心问题,文件权限失败时手动处理
This commit is contained in:
parent
cb05dc8215
commit
63452fe1ab
1 changed files with 83 additions and 80 deletions
|
@ -363,6 +363,7 @@ public class Dir(string path, List<AFileOrDir>? children = null, NextOpType? nex
|
||||||
{
|
{
|
||||||
static void f(Dir dir, FileDirOpStra fileDirOp)
|
static void f(Dir dir, FileDirOpStra fileDirOp)
|
||||||
{
|
{
|
||||||
|
dir.AccessCheck();
|
||||||
foreach (var child in dir.Children)
|
foreach (var child in dir.Children)
|
||||||
{
|
{
|
||||||
if (child.Type == DirOrFile.Dir)
|
if (child.Type == DirOrFile.Dir)
|
||||||
|
@ -394,86 +395,88 @@ public class Dir(string path, List<AFileOrDir>? children = null, NextOpType? nex
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void AccessCheck()
|
private void AccessCheck()
|
||||||
{
|
{
|
||||||
this.Children.ForEach(e =>
|
//不是核心关注点,下面实现有bug。不校验所有文件夹权限,创建时会抛出错误,此时手动处理吧。
|
||||||
{
|
return;
|
||||||
if (e is File file)
|
//this.Children.ForEach(e =>
|
||||||
{
|
//{
|
||||||
if (file.NextOp == null) { }
|
// if (e is File file)
|
||||||
else if (file.NextOp == NextOpType.Add)
|
// {
|
||||||
{
|
// if (file.NextOp == null) { }
|
||||||
if (
|
// else if (file.NextOp == NextOpType.Add)
|
||||||
!AccessWrapper.CheckDirAccess(
|
// {
|
||||||
Path.GetDirectoryName(file.FormatedPath)
|
// if (
|
||||||
?? throw new DirectoryNotFoundException(
|
// !AccessWrapper.CheckDirAccess(
|
||||||
$"{file.FormatedPath} 此父路径不存在"
|
// Path.GetDirectoryName(file.FormatedPath)
|
||||||
),
|
// ?? throw new DirectoryNotFoundException(
|
||||||
[DirAcess.CreateFiles]
|
// $"{file.FormatedPath} 此父路径不存在"
|
||||||
)
|
// ),
|
||||||
)
|
// [DirAcess.CreateFiles]
|
||||||
{
|
// )
|
||||||
throw new UnauthorizedAccessException($"{file.FormatedPath} 无权限创建文件");
|
// )
|
||||||
}
|
// {
|
||||||
}
|
// throw new UnauthorizedAccessException($"{file.FormatedPath} 无权限创建文件");
|
||||||
else if (file.NextOp == NextOpType.Modify)
|
// }
|
||||||
{
|
// }
|
||||||
if (
|
// else if (file.NextOp == NextOpType.Modify)
|
||||||
!(
|
// {
|
||||||
AccessWrapper.CheckFileAccess(file.FormatedPath, [FileAccess.Delete])
|
// if (
|
||||||
&& AccessWrapper.CheckDirAccess(
|
// !(
|
||||||
Path.GetDirectoryName(file.FormatedPath)
|
// AccessWrapper.CheckFileAccess(file.FormatedPath, [FileAccess.Delete])
|
||||||
?? throw new DirectoryNotFoundException(
|
// && AccessWrapper.CheckDirAccess(
|
||||||
$"{file.FormatedPath} 此父路径不存在"
|
// Path.GetDirectoryName(file.FormatedPath)
|
||||||
),
|
// ?? throw new DirectoryNotFoundException(
|
||||||
[DirAcess.CreateFiles]
|
// $"{file.FormatedPath} 此父路径不存在"
|
||||||
)
|
// ),
|
||||||
)
|
// [DirAcess.CreateFiles]
|
||||||
)
|
// )
|
||||||
{
|
// )
|
||||||
throw new UnauthorizedAccessException(
|
// )
|
||||||
$"{file.FormatedPath} 无权限删除源文件或者创建新文件"
|
// {
|
||||||
);
|
// throw new UnauthorizedAccessException(
|
||||||
}
|
// $"{file.FormatedPath} 无权限删除源文件或者创建新文件"
|
||||||
}
|
// );
|
||||||
else if (file.NextOp == NextOpType.Del)
|
// }
|
||||||
{
|
// }
|
||||||
if (!AccessWrapper.CheckFileAccess(file.FormatedPath, [FileAccess.Delete]))
|
// else if (file.NextOp == NextOpType.Del)
|
||||||
{
|
// {
|
||||||
throw new UnauthorizedAccessException($"{file.FormatedPath} 无权限删除源文件");
|
// if (!AccessWrapper.CheckFileAccess(file.FormatedPath, [FileAccess.Delete]))
|
||||||
}
|
// {
|
||||||
}
|
// throw new UnauthorizedAccessException($"{file.FormatedPath} 无权限删除源文件");
|
||||||
}
|
// }
|
||||||
else if (e is Dir dir)
|
// }
|
||||||
{
|
// }
|
||||||
if (dir.NextOp == null) { }
|
// else if (e is Dir dir)
|
||||||
else if (dir.NextOp == NextOpType.Add)
|
// {
|
||||||
{
|
// if (dir.NextOp == null) { }
|
||||||
if (
|
// else if (dir.NextOp == NextOpType.Add)
|
||||||
!AccessWrapper.CheckDirAccess(
|
// {
|
||||||
Path.GetDirectoryName(dir.FormatedPath)
|
// if (
|
||||||
?? throw new DirectoryNotFoundException(
|
// !AccessWrapper.CheckDirAccess(
|
||||||
$"{dir.FormatedPath} 此父路径不存在"
|
// Path.GetDirectoryName(dir.FormatedPath)
|
||||||
),
|
// ?? throw new DirectoryNotFoundException(
|
||||||
[DirAcess.CreateDirectories, DirAcess.CreateFiles]
|
// $"{dir.FormatedPath} 此父路径不存在"
|
||||||
)
|
// ),
|
||||||
)
|
// [DirAcess.CreateDirectories, DirAcess.CreateFiles]
|
||||||
{
|
// )
|
||||||
throw new UnauthorizedAccessException($"{dir.FormatedPath} 无权限创建文件夹或者文件");
|
// )
|
||||||
}
|
// {
|
||||||
}
|
// throw new UnauthorizedAccessException($"{dir.FormatedPath} 无权限创建文件夹或者文件");
|
||||||
else if (dir.NextOp == NextOpType.Del)
|
// }
|
||||||
{
|
// }
|
||||||
if (!AccessWrapper.CheckDirAccess(dir.FormatedPath, [DirAcess.Delete]))
|
// else if (dir.NextOp == NextOpType.Del)
|
||||||
{
|
// {
|
||||||
throw new UnauthorizedAccessException($"{dir.FormatedPath} 无权限删除文件夹");
|
// if (!AccessWrapper.CheckDirAccess(dir.FormatedPath, [DirAcess.Delete]))
|
||||||
}
|
// {
|
||||||
else
|
// throw new UnauthorizedAccessException($"{dir.FormatedPath} 无权限删除文件夹");
|
||||||
{
|
// }
|
||||||
//校验是否拥有子文件或者文件夹的删除权限,
|
// else
|
||||||
dir.AccessCheck();
|
// {
|
||||||
}
|
// //校验是否拥有子文件或者文件夹的删除权限,
|
||||||
}
|
// dir.AccessCheck();
|
||||||
}
|
// }
|
||||||
});
|
// }
|
||||||
|
// }
|
||||||
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in a new issue