2012-02-15 133 views
0

我有这样的代码:具有只读权限复制文件

try 
{ 
    using (FileStream fs = File.Create(path)) { } 
    File.Delete(pathToStore); 
    File.Copy(path, pathToStore); 
} 
catch(Exception){} 

我相信读写属性设置,因为我得到了拒绝访问错误。 有没有办法只在我的代码中设置读属性,所以我没有得到访问被拒绝的错误?我的路径是到服务器,我有权打开文件并执行文件。

+3

在复制之前删除文件? – gideon 2012-02-15 07:16:00

+1

你使用的块体是否真空?如果是,为什么?顺便说一下,您正在服务器上创建一个文件(“路径”位于服务器上,对吗?),您应该具有对路径的写入权限。 – 2012-02-15 07:16:53

+1

做这个'catch(Exception ex)'并且告诉我们'ex'。 – 2012-02-15 07:17:10

回答

2

请注意,如果path不是只读的,它会被您的代码根据MSDN覆盖!

由于块是空的,我只想删除using块......

改变你的代码

try 
{ 
    if (File.Exists (path)) 
    { 
     File.Delete(pathToStore); 
     File.Copy(path, pathToStore); 
    } 
} 
catch(Exception Ex) 
{ 
// do something with the Exception! 
} 

一点,但:它通常是一个坏主意,刚咽下所有异常!

+0

yeaaiii :)这工作正常。感谢所有人回复! :) – 2012-02-15 10:21:01

2
File.OpenRead(path); 

这是你需要什么?