以下代码旨在通过FTP检索文件.但是,我收到了一个错误.
serverPath = "ftp://x.x.x.x/tmp/myfile.txt";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverPath);
request.KeepAlive = true;
request.UsePassive = true;
request.UseBinary = true;
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(username, password);
// Read the file from the server & write to destination
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) // Error here
using (Stream responseStream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(responseStream))
using (StreamWriter destination = new StreamWriter(destinationFile))
{
destination.Write(reader.ReadToEnd());
destination.Flush();
}
Run Code Online (Sandbox Code Playgroud)
错误是:
远程服务器返回错误:(550)文件不可用(例如,找不到文件,没有访问权限)
该文件肯定存在于远程计算机上,我可以手动执行此ftp(即我有权限).任何人都可以告诉我为什么我可能会收到此错误?
我连接到Unix服务器,我试图通过FTP删除其中dir包含多个文件的目录.如果我使用
dir
我明白了
dir
我用的时候
ftp> delete dir/*
Run Code Online (Sandbox Code Playgroud)
我还是得到的
dir
当我尝试
ftp> prompt off
Interactive mode off.
ftp> mdelete dir/*
Run Code Online (Sandbox Code Playgroud)
我被提示输入每个文件.
如何在不提示每个文件的情况下轻松删除/ emptyAndDelete目录?
/谢谢
在Inno Setup中调试时如何查看变量值?如何打印一些东西来调试输出?
谢谢
我对别名的使用感到困惑.我确实理解别名是什么以及它是如何被使用但我不知道它如何与在bean定义上使用名称有什么不同.
<bean id="xyx" name="abc,def" .. />
<alias name="xyx" alias="pqr"/>
Run Code Online (Sandbox Code Playgroud)
当我可以使用abc或def时为什么别名?
winforms文本框是否有任何属性可以在框的末尾创建一个嵌入式按钮?
类似Chrome地址框中的收藏夹按钮:

我在一些Excel表单中也看到过如下内容:

编辑
我跟随Hans Passant的回答添加了一个click事件处理程序,它似乎工作正常:
protected override void OnLoad(EventArgs e) {
var btn = new Button();
btn.Size = new Size(25, textBoxFolder.ClientSize.Height + 2);
btn.Location = new Point(textBoxFolder.ClientSize.Width - btn.Width, -1);
btn.Cursor = Cursors.Default;
btn.Image = Properties.Resources.arrow_diagright;
btn.Click += btn_Click;
textBoxFolder.Controls.Add(btn);
// Send EM_SETMARGINS to prevent text from disappearing underneath the button
SendMessage(textBoxFolder.Handle, 0xd3, (IntPtr)2, (IntPtr)(btn.Width << 16));
base.OnLoad(e);
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
private void btn_Click(object sender, EventArgs e) { …Run Code Online (Sandbox Code Playgroud) 我有一个类似于Inno Setup的问题:验证是否已安装.NET 4.0,但它似乎略有不同.
[Files]
Source: "dependencies\dotNetFx40_Full_x86_x64.exe"; DestDir: {tmp}; Flags: deleteafterinstall; Check: FrameworkIsNotInstalled
Source: "C:\Windows\Microsoft.NET\assembly\GAC_MSIL\MySql.Data\v4.0_6.5.4.0__c5687fc88969c44d\MySql.Data.dll"; DestDir: "{app}\lib"; StrongAssemblyName: "MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, ProcessorArchitecture=MSIL"; Flags: "gacinstall sharedfile uninsnosharedfileprompt"
[Run]
Filename: {tmp}\dotNetFx40_Full_x86_x64.exe; Description: Install Microsoft .NET Framework 4.0; Parameters: /q /norestart; Check: FrameworkIsNotInstalled
[code]
function FrameworkIsNotInstalled: Boolean;
begin
Result := not RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Microsoft\.NETFramework\policy\v4.0');
end;
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在尝试向GAC注册文件.不幸的是,在某些机器上可能没有安装.NET框架.所以我需要先安装它.无论如何,在我尝试注册文件之前,我是否可以强制安装.NET运行时?
string host = @"ftphost";
string username = "user";
string password = "********";
string localFileName = System.IO.Path.GetFileName(@"localfilename");
string remoteDirectory = "/export/";
using (var sftp = new SftpClient(host, username, password))
{
sftp.Connect();
var files = sftp.ListDirectory(remoteDirectory);
foreach (var file in files)
{
if (!file.Name.StartsWith("."))
{
string remoteFileName = file.Name;
if (file.LastWriteTime.Date == DateTime.Today)
Console.WriteLine(file.FullName);
File.OpenWrite(localFileName);
string sDir = @"localpath";
Stream file1 = File.OpenRead(remoteDirectory + file.Name);
sftp.DownloadFile(remoteDirectory, file1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用SSH.NET(Renci.SshNet)库来使用SFTP服务器.我需要做的是根据今天的日期从SFTP服务器上的特定文件夹中获取文件.然后将这些文件从SFTP服务器复制到我的服务器的本地驱动器.
以上是我的代码,但它不起作用.有时它说文件不存在但有时我将下载的文件不会在我的本地服务器上,但我需要下载当天上传到远程文件夹的任何文件.
有人可以看看,看看有什么问题吗?我认为它与流部分有关.除了上传文件之外,我还使用过FTP,我之前使用了一些以前的代码,并认为我可以改变这个过程,但这样做无效.我使用的代码基于这个例子.
是否可以获得Exec'ed可执行文件的输出?
我想向用户显示一个信息查询页面,但在输入框中显示MAC地址的默认值.有没有其他方法来实现这一目标?
我正在尝试使用python中的ssh从服务器读取文件.我正在使用paramiko进行连接.我可以连接到服务器并运行像'cat filename'这样的命令并从服务器获取数据,但我尝试读取的一些文件大小约为1 GB或更多.
如何使用python逐行读取服务器上的文件?
附加信息:经常做的是运行'cat filename'命令并将结果存储在变量中并解决该问题.但由于这里的文件非常大,我正在寻找一种逐行读取文件的方法.
编辑:我可以读取一堆数据并将其拆分成行,但问题是缓冲区中接收的数据并不总是包含完整的行.例如,如果缓冲区有300行,则最后一行可能只是服务器上行的一半,下一半将在下次调用服务器时获取.我想要完整的线条
编辑2:我可以使用什么命令在特定范围内的文件中打印行.喜欢打印前100行,那么接下来的100行等等?这样缓冲区将始终包含完整的行.
我需要在Windows中使用PuTTY创建SSH隧道,这与Linux中的此命令相同:
ssh -fN -L 2000:SomeIp:2000 myusername@myLinuxBox
Run Code Online (Sandbox Code Playgroud)
我在PuTTY中尝试了很多选项,包括将GUI中的源端口设置为"2000",将目标设置为"SomeIp:2000".目标设置为本地(如-L交换机所示).
我成功登录到我的SSH盒子但未进行端口转发.
这在Windows中是否可行,因此使用此端口(2000)的程序所做的所有连接都将通过此隧道?