C# 使用wininet.dll时出现FTPFINDFIRISTFILTER文件错误
我的C#项目中的FtpFindFirstFile函数有问题。基本上,此函数只是为了在指定目录中搜索我在程序中提到的文件,但在函数完成执行之前出现了一个错误,下面是错误的屏幕截图: ---------------开始代码------------------ ---------------结束代码------------------ 以下是错误消息,它出现在执行if-else条件之前: “试图读取或写入受保护的内存。这通常表示其他内存已损坏。”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条件之前: “试图读取或写入受保护的内存。这通常表示其他内存已损坏。” 我不知道是什么原因导致了这个错误,我只是在搜索目录,我
我不知道是什么原因导致了这个错误,我只是在搜索目录,我还没有对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环境中使用它吗?如果你有想法,请访问下面链接上的其他问题,谢谢!