Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
C# 使用wininet.dll时出现FTPFINDFIRISTFILTER文件错误_C#_.net_Visual Studio 2010_C# 4.0_Wininet - Fatal编程技术网

C# 使用wininet.dll时出现FTPFINDFIRISTFILTER文件错误

C# 使用wininet.dll时出现FTPFINDFIRISTFILTER文件错误,c#,.net,visual-studio-2010,c#-4.0,wininet,C#,.net,Visual Studio 2010,C# 4.0,Wininet,我的C#项目中的FtpFindFirstFile函数有问题。基本上,此函数只是为了在指定目录中搜索我在程序中提到的文件,但在函数完成执行之前出现了一个错误,下面是错误的屏幕截图: ---------------开始代码------------------ ---------------结束代码------------------ 以下是错误消息,它出现在执行if-else条件之前: “试图读取或写入受保护的内存。这通常表示其他内存已损坏。” 我不知道是什么原因导致了这个错误,我只是在搜索目录,我

我的C#项目中的FtpFindFirstFile函数有问题。基本上,此函数只是为了在指定目录中搜索我在程序中提到的文件,但在函数完成执行之前出现了一个错误,下面是错误的屏幕截图:

---------------开始代码------------------

---------------结束代码------------------

以下是错误消息,它出现在执行if-else条件之前:

“试图读取或写入受保护的内存。这通常表示其他内存已损坏。”


我不知道是什么原因导致了这个错误,我只是在搜索目录,我还没有对ftp进程执行任何get或put命令。希望你能帮忙!谢谢

我无法回答您的具体问题,但我强烈感觉已经有了一个可管理的解决方案。请记住,只有当框架没有适合您需要的实现时,才需要回退到互操作

var request = (FtpWebRequest)WebRequest.Create("ftp://example.com/");
request.Credentials= new NetworkCredential("username", "password");
// List files
request.Method = WebRequestMethods.Ftp.ListDirectory;

var resp = (FtpWebResponse) request.GetResponse();
var stream = resp.GetResponseStream();
var readStream = new StreamReader(resp.GetResponseStream(), System.Text.Encoding.UTF8);

// handle the incoming stream, store in a List, print, find etc
var files = new List<String>();
if (readStream != null)
{
    while(!readStream.EndOfStream)
    {
      files.Add(readStream.ReadLine());
    }
} 
// showe them
foreach(var file in files)
{
   Console.WriteLine(file);
}
// find one
var fileToFind = "Public";
var foundFile = files.Find( f => f == fileToFind);
Console.WriteLine("found file {0}:", foundFile);
// show status
Console.WriteLine("List status: {0}",resp.StatusDescription); 
var request=(FtpWebRequest)WebRequest.Create(“ftp://example.com/");
request.Credentials=新的网络凭据(“用户名”、“密码”);
//列出文件
request.Method=WebRequestMethods.Ftp.ListDirectory;
var resp=(FtpWebResponse)request.GetResponse();
var stream=resp.GetResponseStream();
var readStream=newstreamreader(resp.GetResponseStream(),System.Text.Encoding.UTF8);
//处理传入流、存储在列表中、打印、查找等
var files=新列表();
if(readStream!=null)
{
而(!readStream.EndOfStream)
{
Add(readStream.ReadLine());
}
} 
//展示他们
foreach(文件中的var文件)
{
Console.WriteLine(文件);
}
//找一个
var fileToFind=“Public”;
var foundFile=files.Find(f=>f==fileToFind);
WriteLine(“找到的文件{0}:”,foundFile);
//显示状态
WriteLine(“列表状态:{0}”,分别为StatusDescription);
在这个片段中,我使用了:





我无法回答您的具体问题,但我强烈感觉已经有了一个可管理的解决方案。请记住,只有当框架没有适合您需要的实现时,才需要回退到互操作

var request = (FtpWebRequest)WebRequest.Create("ftp://example.com/");
request.Credentials= new NetworkCredential("username", "password");
// List files
request.Method = WebRequestMethods.Ftp.ListDirectory;

var resp = (FtpWebResponse) request.GetResponse();
var stream = resp.GetResponseStream();
var readStream = new StreamReader(resp.GetResponseStream(), System.Text.Encoding.UTF8);

// handle the incoming stream, store in a List, print, find etc
var files = new List<String>();
if (readStream != null)
{
    while(!readStream.EndOfStream)
    {
      files.Add(readStream.ReadLine());
    }
} 
// showe them
foreach(var file in files)
{
   Console.WriteLine(file);
}
// find one
var fileToFind = "Public";
var foundFile = files.Find( f => f == fileToFind);
Console.WriteLine("found file {0}:", foundFile);
// show status
Console.WriteLine("List status: {0}",resp.StatusDescription); 
var request=(FtpWebRequest)WebRequest.Create(“ftp://example.com/");
request.Credentials=新的网络凭据(“用户名”、“密码”);
//列出文件
request.Method=WebRequestMethods.Ftp.ListDirectory;
var resp=(FtpWebResponse)request.GetResponse();
var stream=resp.GetResponseStream();
var readStream=newstreamreader(resp.GetResponseStream(),System.Text.Encoding.UTF8);
//处理传入流、存储在列表中、打印、查找等
var files=新列表();
if(readStream!=null)
{
而(!readStream.EndOfStream)
{
Add(readStream.ReadLine());
}
} 
//展示他们
foreach(文件中的var文件)
{
Console.WriteLine(文件);
}
//找一个
var fileToFind=“Public”;
var foundFile=files.Find(f=>f==fileToFind);
WriteLine(“找到的文件{0}:”,foundFile);
//显示状态
WriteLine(“列表状态:{0}”,分别为StatusDescription);
在这个片段中,我使用了:





对不起,我已编辑了我的问题。谢谢你为什么不使用这个软件?也可以在创建
hFTPHandle
I don的地方共享代码;我不知道FtpWebRequest,但我的进程仅在本地服务器中。我编辑了我的问题,在调试模式下运行了它,错误只出现在“FtpFindFirstFile”进程中。您从哪里获得WIN32_FIND_数据的定义?你不缺几个字段吗?[MSDN](ttp://msdn.microsoft.com/en-us/library/windows/desktop/aa365740对不起,我已经编辑了我的问题。谢谢你为什么不使用这个软件?也可以在创建
hFTPHandle
I don的地方共享代码;我不知道FtpWebRequest,但我的进程仅在本地服务器中。我编辑了我的问题,在调试模式下运行了它,错误只出现在“FtpFindFirstFile”进程中。您从哪里获得WIN32_FIND_数据的定义?你不缺几个字段吗?[MSDN](ttp://msdn.microsoft.com/en-us/library/windows/desktop/aa365740(v=vs.85).aspx),[PINVOKE]()谢谢,ftpwebrequest是我需要的,你知道如何在VMS环境中使用它吗?如果你有想法,请访问下面链接上的其他问题,谢谢!谢谢,ftpwebrequest是我需要的,你知道如何在VMS环境中使用它吗?如果你有想法,请访问下面链接上的其他问题,谢谢!