C#Windows窗体-访问路径。。。否认

C#Windows窗体-访问路径。。。否认,c#,winforms,C#,Winforms,--由--解决 在删除文件之前添加Thread.Sleep(2000)。 感谢伊万。 大家好,这个问题似乎有一个相关的问题,但我认为我的问题是不同的。。这很奇怪 我的问题是,我正在尝试删除一个文件。。一个PNG文件。。但是每次调用FileInfo.Delete()时,我都会得到这个访问路径的权限,被拒绝错误。我检查了权限,一切都已启用,只读-否。我甚至添加了每个人用户,但我仍然得到相同的错误。我在某处读到,如果我有一些文件(除了可执行文件、dll等)。。我不能把“程序文件”或任何我认为不安全的

--由--
解决 在删除文件之前添加Thread.Sleep(2000)。
感谢伊万。


大家好,这个问题似乎有一个相关的问题,但我认为我的问题是不同的。。这很奇怪

我的问题是,我正在尝试删除一个文件。。一个PNG文件。。但是每次调用FileInfo.Delete()时,我都会得到这个访问路径的权限,被拒绝错误。我检查了权限,一切都已启用,只读-否。我甚至添加了每个人用户,但我仍然得到相同的错误。我在某处读到,如果我有一些文件(除了可执行文件、dll等)。。我不能把“程序文件”或任何我认为不安全的地方放进去。。所以我决定把它放在“我的文档”里,但奇怪的是,我还是会得到同样的错误

这个怎么了

关于代码,我们就这样说吧

FileInfo fi = new FileInfo("C:\\Users\\Administrator\\Documents\\JWMD Themer\\Start_Icon_SettingsS.png"); fi.Delete(); // or alternatively, I can just use Path.Copy([srcFile], [destFile]); FileInfo fi=newfileinfo(“C:\\Users\\Administrator\\Documents\\JWMD Themer\\Start\u Icon\u SettingsS.png”); fi.删除(); //或者,我也可以使用 Copy([srcFile],[destFile]) 您可以使用来验证这不是一个打开的文件句柄问题。

您可以使用来验证这不是一个打开的文件句柄问题。

试试看 在c之前添加“@”:比如(@“c:\windows…”)

试试看
在c:like(@“c:\windows…”)之前添加“@”

以管理员身份登录或以管理员身份运行应用程序不会授予您删除NTFS文件系统中任何所需文件的权限。检查管理员是否有权限写入此文件-如果没有权限,您将有权将文件所有者更改为管理员并授予他权限。

以管理员身份登录或以管理员身份运行应用程序不会授予您删除NTFS文件系统中任何所需文件的权限。检查管理员是否有权限写入此文件-如果没有权限,您将有权将文件所有者更改为管理员并授予他权限。

如果在相同情况下可以在Windows资源管理器中删除,我认为解决方案应该是使用如果在相同情况下可以在Windows资源管理器中删除,我认为解决方案应该是使用OpenVisualStudio作为管理员


我不知道除了给你特权之外还有什么区别,但我用这个解决了这个问题。

以管理员身份打开Visual Studio


我不知道除了给你特权之外还有什么区别,但我用这个解决了这个问题。

你的Windows版本和运行你的应用程序的帐户可能高度相关。有没有可能你的应用程序正在打开该文件,阻止删除它?我使用的是“管理员”帐户。@Bubbafat-我试着在我的代码中来回查找,2,3x我确信这个文件没有被我的应用程序或其他应用程序使用:(你能测试以下内容吗:运行你的应用程序,并在删除之前以某种方式暂停(如果没有其他内容,则是一些长线程。休眠,或删除删除代码)。然后尝试在Windows中删除。它不应该工作。因此,或者您的应用程序正在使用它,或者它在其他地方使用。您的Windows版本和运行您的应用程序的帐户可能高度相关。是否有可能应用程序正在打开该文件以阻止删除它?我使用的是“管理员”帐户。@Bubbafat-我试着在我的代码中来回查找,2,3x我确信这个文件没有被我的应用程序或其他应用程序使用:(你能测试以下内容吗:运行你的应用程序,并在删除之前以某种方式暂停(如果没有其他内容,则是一些长线程。休眠,或删除删除代码)。然后尝试在Windows中删除。它不应该工作。因此,或者你的应用程序正在使用它,或者它在其他地方使用。嘿,是的,解锁器。让我试试,然后返回此处。我使用Windows 7,而解锁器未找到任何内容,即使我的应用程序正在运行。这不是你的问题。嘿,是的解锁器。让我试试,然后返回此处,我使用Windows 7即使我的应用正在运行,Unlocker也没有找到任何。这不是你的问题。上面的代码只是一个示例。因此它只是一个示例路径。原始代码类似于以下字符串srcFilename=path.GetFileName(lblNewImagePath.Text);字符串destFilepath=path.Combine(path.GetDirectoryName(this.datafile),srcFilename);上面的代码只是一个示例..因此它只是一个示例路径..原始代码如下字符串srcFilename=path.GetFileName(lblNewImagePath.Text);字符串destFilepath=path.Combine(path.GetDirectoryName(this.datafile),srcFilename);