2017-09-01 31 views
1

我试图删除一个文件,但我得到错误消息(拒绝访问),即使我有完全的权限。最初我的文件将在我的根文件夹中。首先,我正在重命名该文件,然后将文件移动到另一个文件夹(在根文件夹之外),如下所示。在c中移动后无法删除文件#

System.IO.File.Move(strPhysicalFolder+ tpfile,strPhysicalFolder+fName); 
System.IO.File.Move(strPhysicalFolder + fName, filePath + fName); 
System.IO.File.SetAttributes(filePath + fName, FileAttributes.Normal); 

现在,无论何时我尝试删除文件,我都会收到错误(拒绝访问)。 下面是我的代码:

string strFileFullPath = srcPath + filename; 
if (System.IO.File.Exists(strFileFullPath)) 
{ 
    System.IO.File.Delete(strFileFullPath); 
} 

strFileFullPath包含路径到我无法删除的文件。在删除(设置属性)之前,我需要做些什么吗?任何帮助,将不胜感激。谢谢。

+0

如果你去在资源管理器文件会发生什么。你真的可以从代码之外的新位置删除它吗? – Skintkingle

+0

注意,但要查找'System.IO.Path.Combine()' –

+2

没有足够的信息。你在移动和删除之间做什么?如果是这样:什么。另外:重命名和移动可以一步完成。另外:最好使用'System.IO.Path.Combine'的字符串连接。你确定所有路径都正确(包括路径分隔符)吗? – LocEngineer

回答

3

声音daft,但它可能会在文件夹的权限。

也许像下面这样:

System.IO.File.SetAttributes(strFileFullPath, FileAttributes.Normal); 
System.IO.File.Delete(strFileFullPath); 
+0

谢谢汤姆。这工作。但是,我可以知道设置文件属性的原因吗? –

+1

这是前段时间我错误地发现的东西,我假设像我一样,你可能将这个文件移动到你的'C:\'如果是这种情况,那么文件属性将被提升,你不能只进去和删除(通过你的应用程序)。因此,您需要在删除之前对其进行更改。 – Tom

+0

是的,我正在向c移动,因为每当我将文件保存在根文件夹中时,它将直接被用户访问。所以我将所有文件移出根文件夹。 –