我尝试将文件上传到FTP服务器上的目录.我用这个方法FtpWebRequest.我想将一个文件上传到该用户的主目录,但我总是收到以下错误消息:
请求的URI对此FTP命令无效.
有什么问题?我试过关闭被动模式,但它仍然是一样的.
static void FtpUpload()
{
// Get the object used to communicate with the server.
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://12.22.44.45");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.UsePassive = false;
// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential("pokus", "password");
// Copy the contents of the file to the request stream.
StreamReader sourceStream = new StreamReader(path);
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse(); …Run Code Online (Sandbox Code Playgroud) 我正在使用Apache Commons FTP上传文件.在上传之前,我想检查服务器上是否已存在该文件,并从该服务器备份到同一服务器上的备份目录.
有谁知道如何将文件从FTP服务器复制到同一台服务器上的备份目录?
public static void uploadWithCommonsFTP(File fileToBeUpload){
FTPClient f = new FTPClient();
FTPFile backupDirectory;
try {
f.connect(server.getServer());
f.login(server.getUsername(), server.getPassword());
FTPFile[] directories = f.listDirectories();
FTPFile[] files = f.listFiles();
for(FTPFile file:directories){
if (!file.getName().equalsIgnoreCase("backup")) {
backupDirectory=file;
} else {
f.makeDirectory("backup");
}
}
for(FTPFile file: files){
if(file.getName().equals(fileToBeUpload.getName())){
//copy file to backupDirectory
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑过的代码:仍有问题,当我备份zip文件时,备份文件已损坏.
有没有人知道它的原因?
public static void backupUploadWithCommonsFTP(File fileToBeUpload) {
FTPClient f = new FTPClient();
boolean backupDirectoryExist = false;
boolean fileToBeUploadExist = …Run Code Online (Sandbox Code Playgroud) 我有可以在Wine下的OS X上运行的Windows应用程序.为方便起见,我想将应用程序打包为OS X应用程序(xxx.app基于WineBottler 的文件夹的ZIP存档).
请注意,应用程序的主要可执行文件(由CFBundleExecutable标记定义Info.plist)是shell脚本,而不是二进制文件.
我想签署应用程序以通过OS X Gatekeeper.由于我的完整构建过程在Windows上运行(因为我实际上根本没有Mac),我需要在Windows上进行签名.
我已经发现签署应用程序会创建_CodeSignature包含四个文件的文件夹:
CodeDirectory
CodeRequirements
CodeResources
CodeSignature
Run Code Online (Sandbox Code Playgroud)
我没有找到任何描述这些文件内容的规范.
实验上,我发现这CodeResources是一个XML文件,其中包含应用程序中所有文件的SHA-1哈希值.我可以产生这个.
CodeRequirements二进制文件的内容似乎是固定的.它似乎没有随应用程序的内容而改变.确认表示赞赏.这个文件有什么用?
至于二进制文件CodeDirectory,CodeSignature我不知道.
两个文件都随应用内容而变化.似乎任何应用程序文件更改(包括纯文本许可证文件)都会影响它们.
该CodeSignature显然包含了签名.我可以在文件中看到有关代码签名证书的纯文本信息.有没有可以生成文件的工具?因为它是一个签名,它应该是非常标准的.虽然可能有一些额外的二进制元数据可以使生成更加困难.有谁知道它具体签署了什么?我可以想象它只标记CodeResources文件,因为它描述了应用程序中的所有其他文件.或者它是否实际上递归地签署了应用程序中的所有文件?
原生OS X应用程序CodeResources只有.所以实际上没有签名_CodeSignature.我想这是因为他们在主可执行二进制文件中嵌入了签名.请注意,我的[Windows]二进制文件(虽然它没有Info.plist像上面提到的那样直接引用)是使用Windows进行代码签名的signtool.exe.显然OS X即使没有引用也能识别签名,因为codesign -d -vvv xxx.app输出包含有关证书的信息:
Executable=/Applications/WinSCP.app/Contents/MacOS/startwine
Identifier=WinSCP
Format=bundle with generic
CodeDirectory v=20100 size=135 flags=0x0(none) hashes=1+3 location=embedded
Hash type=sha1 size=20
CDHash=a1ef4f04b2c1b4b793788ce3ab9d7881528f3d95
Signature size=4867
Authority=Martin Prikryl
Authority=VeriSign Class 3 Code Signing 2010 CA …Run Code Online (Sandbox Code Playgroud) 我想使用FileZilla每天自动将PDF上传到我的GoDaddy托管网站,取代前一天的工作表.有没有办法做到这一点?我在网上看到批处理文件可能有用,有人可以发布批处理文件的样本版本吗?
我知道有一些简单的命令登录到远程计算机通过VBA通过指定即User@hostname与-pw选项中提供的密码Wshell.Run函数,其中Wshell为CreateObject("WScript.Shell").
但是,我需要使用私钥文件(在PuTTY中的Connection/SSH/Auth选项下指定),同时通过Excel-VBA宏登录.有办法吗?
我需要它,因为我在我的VBA代码的第二种形式上使用管理员帐户(第一种形式是使用用户自己的帐户),因此无法在第二种形式上提供密码文本框.因此,唯一安全的解决方案是通过公钥和私钥使用SSH登录.
提前致谢!
我正在使用Inno Setup来分发我的应用程序.是否可以在Inno Script中查看特定条件,并根据需要从Internet下载并安装一些文件.
在Inno Setup FAQ中有一个如何为我的软件分配文件类型的示例.处理注册表是没有问题的.
但我怎么能为用户提供的选择它的文件类型,他希望分配?假设我已经为文本文件编写了一个简单的编辑器,并想询问用户是否想要将.txt和/或.nfo与我的程序一起分配.带有复选框的设置页面将是天才.
使用Inno Setup如何做到这一点?
我必须将文件上传到FTP服务器.文件名包含特殊字母äöü.在FTP服务器上,我需要文件名为UTF-8编码.
我的代码是这样的:
import org.apache.commons.net.ftp.FTPClient;
FTPClient client = new FTPClient();
...
boolean retval = client.storeFile(fileName, inputStream);
Run Code Online (Sandbox Code Playgroud)
问题是之后storeFile,FTP服务器上保存的文件名是ISO-8859-1编码而不是UTF-8.
如何告诉FTPClientUTF-8编码文件名?
我看过以下帖子.我的代码看起来完全相同,但不起作用:
Inno Setup检查运行过程
我从http://www.vincenzo.net/isxkb/index.php?title=PSVince复制了这个例子
但是这个例子也不起作用,即使我改变了这样的代码:
[Code]
function IsModuleLoaded(modulename: AnsiString): Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';
Run Code Online (Sandbox Code Playgroud)
代码总是返回false(程序没有运行,即使它正在运行).在Windows 2008 R2和Windows 7上测试过.
事实上我想检查,如果它tomcat5.exe正在运行.所以我想我不能用AppMutex.
我也看过https://code.google.com/p/psvince/source/detail?r=5
但我找不到有关该DLL兼容性的任何事实.
完整代码:
[Files]
Source: psvince.dll; Flags: dontcopy
[Code]
function IsModuleLoaded(modulename: AnsiString ): Boolean;
external 'IsModuleLoaded@files:psvince.dll stdcall';
function InitializeSetup(): Boolean;
begin
if(IsModuleLoaded( 'notepad.exe' )) then
begin
MsgBox('Running', mbInformation, MB_OK);
Result := false;
end
else
begin
MsgBox('Not running', mbInformation, MB_OK);
Result := true;
end
end;
Run Code Online (Sandbox Code Playgroud) 我正在运行一个java程序,我使用Java SFTP将文件从一个文件夹传输到另一个文件夹.我遇到的问题是我在Java SFTP中遇到以下错误(使用JSch):
C:\ Oracle\Middleware\Oracle_Home\oracle_common\jdk\bin\javaw.exe -server -classpath C:\ JDeveloper\mywork\Java_Hello_World.adf; C:\ JDeveloper\mywork\Java_Hello_World\Client\classes; C:\ Users\ADMIN\Downloads\jsch-0.1.53.jar -Djavax.net.ssl.trustStore = C:\ Users\IBM_AD~1\AppData\Local\Temp\trustStore5840796204189742395.jks FileTransfer com.jcraft.jsch.JSchException:UnknownHostKey: 127.0.0.1.RSA密钥指纹是a2:39:3f:44:88:e9:1f:d7:d1:71:f4:85:98:fb:90:dc at com.jcraft.jsch.Session.checkHost(Session.java: 797)at com.jcraft.jsch.Session.connect(Session.java:342)at com.jcraft.jsch.Session.connect(Session.java:183)at FileTransfer.main(FileTransfer.java:33)进程退出时退出代码0.
以下是我目前的代码:
FileTransfer fileTransfer = new FileTransfer();
JSch jsch = new JSch();
try {
String host = "127.0.0.1";
int port = 22;
String user = "user";
Session session = jsch.getSession(user, host, port);
session = jsch.getSession("username", "127.0.0.1", 22);
session.connect(); // bug here , java.net.ConnectException
ChannelSftp sftp = null;
sftp = (ChannelSftp)session.openChannel("sftp") ; //channel;
//extra config code …Run Code Online (Sandbox Code Playgroud) ftp ×3
inno-setup ×3
java ×3
ftp-client ×2
sftp ×2
ssh ×2
.net ×1
32bit-64bit ×1
automation ×1
c# ×1
code-signing ×1
codesign ×1
command-line ×1
filezilla ×1
jsch ×1
macos ×1
pascalscript ×1
private-key ×1
public-key ×1
putty ×1
upload ×1
utf-8 ×1
windows ×1
xcode ×1