Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在多个程序中使用目录类运行时,对路径的system.io.exception访问被拒绝_.net_File Io - Fatal编程技术网

.net 在多个程序中使用目录类运行时,对路径的system.io.exception访问被拒绝

.net 在多个程序中使用目录类运行时,对路径的system.io.exception访问被拒绝,.net,file-io,.net,File Io,我有两个程序正在使用.NET目录类静态方法访问目录 第一个程序只读取一个目录,而第二个程序试图重命名一个目录。第二个程序重命名的目录可能与第一个程序读取的目录不同 当第二个程序尝试重命名目录时(我正在使用directory.Move(sourceDir,destDir)函数),我会得到如下错误: 对路径的system.io.exception访问被拒绝 我怀疑发生这种情况的原因是我应该使用DirectoryInfo方法(它们是实例,而不是静态的)。以前有人遇到过这个问题吗?据我所知,我的问题的解

我有两个程序正在使用.NET目录类静态方法访问目录

第一个程序只读取一个目录,而第二个程序试图重命名一个目录。第二个程序重命名的目录可能与第一个程序读取的目录不同

当第二个程序尝试重命名目录时(我正在使用directory.Move(sourceDir,destDir)函数),我会得到如下错误:

对路径的system.io.exception访问被拒绝


我怀疑发生这种情况的原因是我应该使用DirectoryInfo方法(它们是实例,而不是静态的)。以前有人遇到过这个问题吗?

据我所知,我的问题的解决方案是使用System.IO.DirectoryInfo对象,而不是使用静态System.IO.Directory类。我能找到的唯一线索是,为什么这可以解决我的问题,它说安全检查不会发生在DirectoryInfo实例中的所有方法上,但安全检查总是发生在静态目录类调用的方法上


尽管这解决了我的问题,但它并没有给我足够的信息来解释为什么这样做有效。如果有人能给我提供更多信息,我将不胜感激。

据我所知,解决我问题的方法是使用System.IO.DirectoryInfo对象,而不是使用静态System.IO.Directory类。我能找到的唯一线索是,为什么这可以解决我的问题,它说安全检查不会发生在DirectoryInfo实例中的所有方法上,但安全检查总是发生在静态目录类调用的方法上


尽管这解决了我的问题,但它并没有给我足够的信息来解释为什么这样做有效。如果有人能给我更多的信息,我将不胜感激。

我发现的另一个技巧是在做一些IO工作之前调用gc.collect()(移动文件、目录等),这不是最好的主意,而是我在使用SQLite时学到的最方便的技巧之一,我发现的另一个技巧是在做一些IO工作之前调用gc.collect()(移动文件、目录等),这不是最好的主意,而是我在使用SQLite时学到的最方便的技巧之一,这影响了办公室的IO工作。

试试这个

 DirectoryInfo dirInfo = new DirectoryInfo(oldPath);
 dirInfo.MoveTo(newPath);
试试这个

 DirectoryInfo dirInfo = new DirectoryInfo(oldPath);
 dirInfo.MoveTo(newPath);
我不确定C#如何处理它,但在Java中,告诉GC进行收集并不能保证所有垃圾都已被收集。这与C#类似吗?我不确定C#如何处理它,但在Java中,告诉GC进行收集并不能保证所有垃圾都已被收集。这类似于C#吗?