[英]Copy File Edge Case
我有一个在UserX下运行的应用程序。 我也有2个网络路径指向同一Share的子文件夹,例如:
\\\\MyMainShare\\share\\Folder 1
\\\\MyMainShare\\share\\Folder 2
UserX在P1和P2上均没有权限(这意味着他无法在此处读写),但是我确实有UserP1和UserP2。 UserP1只能读/写P1。 UserP2只能读/写P2。
现在如何将文件从一个文件夹复制到另一个文件夹?
到目前为止,我坚持使用File.Copy和一些模拟功能,但没有取得积极的结果...我得到的只是“访问被拒绝” ...
细节:
使用指定的约束,您没有太多选择。
比“读取内存/切换凭据/写入”更好的选择是执行以下操作:
批量读取文件(例如,从Share 1作为UserP1从Share 1中读取),同时写入UserP1和UserP2都可以访问的第三个(也许是本地)位置。 然后从该位置读取文件作为UserP2并写入共享2。
如果您有能力以多线程方式执行此操作,则可以让UserP2在UserP1写入文件时开始读取文件。 这样,在开始复制到共享2之前,您不必等待到第三个位置的写操作就完成了。您将招致第三个位置所需的存储空间的损失,但是不会读取整个文件内存,也不会在开始写入Share 2之前先将整个文件复制到第三个位置所花费的时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.