C# 将所有文件从文件夹复制到另一个文件夹,无权限限制

C# 将所有文件从文件夹复制到另一个文件夹,无权限限制,c#,.net,C#,.net,请帮帮我,我卡住了 我想将所有子文件夹从指定路径复制到另一个文件夹。我已经成功地在普通文件夹上访问它,但有时我会遇到未经授权的访问异常,所有程序都会崩溃。 我希望能够继续运行程序,跳过未经授权的访问文件夹 有什么办法吗 多谢各位 这是我的代码: foreach (string dirPath in Directory.GetDirectories(strSourcePath, "*",SearchOption.AllDirectories)) { Directory.CreateDir

请帮帮我,我卡住了

我想将所有子文件夹从指定路径复制到另一个文件夹。我已经成功地在普通文件夹上访问它,但有时我会遇到未经授权的访问异常,所有程序都会崩溃。 我希望能够继续运行程序,跳过未经授权的访问文件夹

有什么办法吗

多谢各位

这是我的代码:

foreach (string dirPath in Directory.GetDirectories(strSourcePath, "*",SearchOption.AllDirectories))
{
     Directory.CreateDirectory(dirPath.Replace(strSourcePath, strTargetPath));
}

//Copy all the files
Foreach (string newPath in Directory.GetFiles(strSourcePath, "*.*",SearchOption.AllDirectories))
{
     File.Copy(newPath, newPath.Replace(strSourcePath, strTargetPath));
 }
当我尝试执行以下行时发生崩溃:
Directory.GetDirectories(strSourcePath,“*”,

SearchOption.AllDirectories

捕获异常并继续

伪代码:

for file in folder {
    try {
        operation
    } catch (UnauthorizedAccessException ){
    continue; //Probably should log here
    }
}

捕捉异常并继续

伪代码:

for file in folder {
    try {
        operation
    } catch (UnauthorizedAccessException ){
    continue; //Probably should log here
    }
}

我不认为有一种内置的方法可以递归地枚举文件,当它在某个目录中出现异常时,这种方法不会消失。因此,您需要自己实现递归

如果枚举引发错误,您可以查看以下问题:


如果是复制引发了错误,我只需要为这些异常添加一个
try catch
子句,然后继续处理下一个文件。

我认为没有一种内置的方法递归枚举文件,当它在某个目录中遇到异常时,它不会消失。因此,您需要自己实现递归

如果枚举引发错误,您可以查看以下问题:


如果是复制引发了错误,我只需为这些异常添加一个
try-catch
子句,然后继续下一个文件。

您必须在try-catch错误句柄中包含目录和文件创建的两部分。如果出现错误,只需记录错误或显示消息,但它将继续搜索和复制

你也可以看看


拒绝访问目录或文件权限失败时会发生错误,但不用担心,一切都会顺利进行。不要忘记检查您是否从原始端设置了正确的权限。

您必须在try-catch错误句柄中同时包含目录和文件创建的两部分。如果发生错误,只需记录错误或显示混乱即可年龄,但它将继续搜索和复制

你也可以看看


被拒绝访问的目录中出现错误或文件权限失败,但不用担心,一切正常。不要忘了检查您是否从原始端设置了正确的权限。

可能重复的可能重复的可能重复的可能重复的可能重复的不是复制它的GetDirectorymethod@user1018192在这种情况下,你可以简单地使用我的答案另一个问题是,这不是复制GetDirectory的问题method@user1018192在这种情况下,你可以简单地使用我从另一个问题的答案。