Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.Net无法删除/终止从FTP站点下载的文件_Vb.net_Ftp - Fatal编程技术网

VB.Net无法删除/终止从FTP站点下载的文件

VB.Net无法删除/终止从FTP站点下载的文件,vb.net,ftp,Vb.net,Ftp,我承认我在FTP方面是个新手。我试图从ftp站点下载一个文件,提取数据,然后删除它。以下是相关代码(我从某个论坛获得了函数,但此后一直无法找到): 它可以很好地下载文件,但在kill命令中出现以下错误:“访问路径'C:\temp.csv'被拒绝。”如果使用System.IO.file.Delete,则会出现相同的错误(有关异常详细信息,请参阅末尾的代码部分) 奇怪的是,我可以毫无问题地手动删除该文件。此外,如果我复制了文件,我可以杀死副本,但仍然不是原始文件。我不认为这是一个连接/发布问题,因为

我承认我在FTP方面是个新手。我试图从ftp站点下载一个文件,提取数据,然后删除它。以下是相关代码(我从某个论坛获得了函数,但此后一直无法找到):

它可以很好地下载文件,但在kill命令中出现以下错误:“访问路径'C:\temp.csv'被拒绝。”如果使用System.IO.file.Delete,则会出现相同的错误(有关异常详细信息,请参阅末尾的代码部分)

奇怪的是,我可以毫无问题地手动删除该文件。此外,如果我复制了文件,我可以杀死副本,但仍然不是原始文件。我不认为这是一个连接/发布问题,因为我也不能杀死几天前下载的文件&几台计算机重新启动。我知道这不是目录权限问题,因为我可以手动将文件移动到桌面,但仍然无法通过代码杀死它

我发现一些论坛帖子也有同样的问题,但没有帖子的答案。只是想澄清一下,我并没有试图从ftp站点删除该文件,而是在我的机器上删除下载的文件

我正在使用VisualStudio2008。提前谢谢

例外情况详情:

System.UnauthorizedAccessException was unhandled
  Message="Access to the path 'C:\temp.csv' is denied."
  Source="Microsoft.VisualBasic"
  StackTrace:
       at Microsoft.VisualBasic.FileSystem.Kill(String PathName)    at Project1.Module1.Main()    at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)    at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)    at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()    at System.Threading.ThreadHelper.ThreadStart_Context(Object state)    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)    at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 

使用AppData文件夹,问题应该会消失。您的应用不会自动拥有所有文件夹中所有文件的所有权

 mUserFileDir = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) & _
 YourFolderName & YourFileName
或者
Environment.SpecialFolder.LocalApplicationData
,这取决于它正在做什么以及为谁做


也可以检查文件属性和任务。可能有问题。

正如错误消息所示,您没有足够的权限写入c:\,这在现代版本的windows中是很正常的。尝试在某个地方创建一个新目录并将其写入其中。我应该澄清一下-我将路径缩短为C:\以使其更干净。但我知道标准权限不是问题所在,因为我可以杀死同一目录中的其他(非ftp源)文件。您使用过“Try catch and finally”吗?我在其他地方使用过它,但我不知道我可以在Catch或Finally部分中添加什么来帮助删除该文件。在新的dl之后,您是否查看了该文件的权限和属性?啊!它被标记为只读!我不知道这会使它,所以我可以手动删除它,但不是用代码。真奇怪。谢谢陛下如果答案是在注释中,那么标记答案的最佳方式是什么?我对答案进行了编辑,以包含属性…我本想在前面说,但忘了。
 mUserFileDir = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) & _
 YourFolderName & YourFileName