我在UserX下运行了一个应用。我还有2个网络路径指向同一个共享的子文件夹,如:
\\MyMainShare\share\Folder 1
\\MyMainShare\share\Folder 2
UserX没有P1和P2的权限(这意味着他无法读取或写入),但我确实有UserP1和UserP2。 UserP1只能读/写P1。 UserP2只能读/写P2。
现在如何将文件从一个文件夹复制到另一个文件夹?
到目前为止,我坚持使用File.Copy和一些模仿但没有正面结果......我得到的只是“拒绝访问”......
详细信息:
答案 0 :(得分:1)
使用指定的约束,您没有很多选项。
比“读取存储器/开关凭证/写入”更好的选择是执行以下操作:
在写入UserP1和UserP2都可以访问的第三个(可能是本地)位置时,以块的形式读取文件(例如,从Share 1作为UserP1)。然后从该位置读取文件为UserP2并写入共享2。
如果您能够以多线程方式执行此操作,则可以让UserP2在UserP1写入文件时开始读取文件。通过这种方式,您无需在开始复制到共享2之前等待写入第三个位置完成。您将承担第三个位置所需的存储空间的惩罚,但是读取整个文件时的内存损失都没有内存,也不是在开始写入共享2之前首先将整个文件复制到第三个位置的时间代价。