-n禁止第一次连接的时候自动登陆,即不使用netrc文件;
-i 在多个文件传输期间关闭交互提示,相当于FTP中prompt命令关闭;
整个FTP过程中所有的命令都从文件$FTPFILE中获取,并将过程追加记录到$LOGFILE中
我通过FileTypeRegister静态类来完成这些功能。首先,将注册需要用到的信息封装成FileTypeRegInfo,定义如下:
public class FileTypeRegInfo
{
/// <summary>
/// 目标类型文件的扩展名
/// </summary>
public string ExtendName ; //"xcf"
/// <summary>
/// 目标文件类型说明
/// </summary>
public string Description ; //"XCodeFactory项目文件"
/// <summary>
/// 目标类型文件关联的图标
/// </summary>
public string IcoPath ;
/// <summary>
/// 打开目标类型文件的应用程序
/// </summary>
public string ExePath ;
public FileTypeRegInfo()
{
}
public FileTypeRegInfo(string extendName)
{
thisExtendName = extendName ;
}
}
FileTypeRegister类主要是 *** 作注册表中的内容,实现如下:
/// <summary>
/// FileTypeRegister 用于注册自定义的文件类型。
/// zhuweisky 20050831
/// </summary>
public class FileTypeRegister
{
RegisterFileType#region RegisterFileType
/// <summary>
/// RegisterFileType 使文件类型与对应的图标及应用程序关联起来。
/// </summary>
public static void RegisterFileType(FileTypeRegInfo regInfo)
{
if(RegistryHelperFileTypeRegistered(regInfoExtendName))
{
return ;
}
string relationName = regInfoExtendNameSubstring(1 ,regInfoExtendNameLength-1)ToUpper() + "_FileType" ;
RegistryKey fileTypeKey = RegistryClassesRootCreateSubKey(regInfoExtendName) ;
fileTypeKeySetValue("" ,relationName) ;
fileTypeKeyClose() ;
RegistryKey relationKey = RegistryClassesRootCreateSubKey(relationName) ;
relationKeySetValue("" ,regInfoDescription) ;
RegistryKey iconKey = relationKeyCreateSubKey("DefaultIcon") ;
iconKeySetValue("" ,regInfoIcoPath) ;
RegistryKey shellKey = relationKeyCreateSubKey("Shell") ;
RegistryKey openKey = shellKeyCreateSubKey("Open") ;
RegistryKey commandKey = openKeyCreateSubKey("Command") ;
commandKeySetValue("" ,regInfoExePath + " %1") ;
relationKeyClose() ;
}
/// <summary>
/// GetFileTypeRegInfo 得到指定文件类型关联信息
/// </summary>
public static FileTypeRegInfo GetFileTypeRegInfo(string extendName)
{
if(! RegistryHelperFileTypeRegistered(extendName))
{
return null ;
}
FileTypeRegInfo regInfo = new FileTypeRegInfo(extendName) ;
string relationName = extendNameSubstring(1 ,extendNameLength-1)ToUpper() + "_FileType" ;
RegistryKey relationKey = RegistryClassesRootOpenSubKey(relationName) ;
regInfoDescription = relationKeyGetValue("")ToString() ;
RegistryKey iconKey = relationKeyOpenSubKey("DefaultIcon") ;
regInfoIcoPath = iconKeyGetValue("")ToString();
RegistryKey shellKey = relationKeyOpenSubKey("Shell") ;
RegistryKey openKey = shellKeyOpenSubKey("Open") ;
RegistryKey commandKey = openKeyOpenSubKey("Command") ;
string temp = commandKeyGetValue("")ToString() ;
regInfoExePath = tempSubstring(0 ,tempLength-3) ;
return regInfo ;
}
/// <summary>
/// UpdateFileTypeRegInfo 更新指定文件类型关联信息
/// </summary>
public static bool UpdateFileTypeRegInfo(FileTypeRegInfo regInfo)
{
if(! RegistryHelperFileTypeRegistered(regInfoExtendName))
{
return false ;
}
string extendName = regInfoExtendName ;
string relationName = extendNameSubstring(1 ,extendNameLength-1)ToUpper() + "_FileType" ;
RegistryKey relationKey = RegistryClassesRootOpenSubKey(relationName ,true) ;
relationKeySetValue("" ,regInfoDescription) ;
RegistryKey iconKey = relationKeyOpenSubKey("DefaultIcon" ,true) ;
iconKeySetValue("" ,regInfoIcoPath);
RegistryKey shellKey = relationKeyOpenSubKey("Shell") ;
RegistryKey openKey = shellKeyOpenSubKey("Open") ;
RegistryKey commandKey = openKeyOpenSubKey("Command" ,true) ;
commandKeySetValue("" ,regInfoExePath + " %1") ;
relationKeyClose() ;
return true ;
}
/// <summary>
/// FileTypeRegistered 指定文件类型是否已经注册
/// </summary>
public static bool FileTypeRegistered(string extendName)
{
RegistryKey softwareKey = RegistryClassesRootOpenSubKey(extendName);
if(softwareKey != null)
{
return true ;
}
return false ;
}
#endregion
}
要注意的是commandKeySetValue("" ,regInfoExePath + " %1") ;其中" %1"表示将被双击的文件的路径传给目标应用程序,这样在双击axcf文件时,XCodeFactory才知道要打开哪个文件,所以应用程序的Main方法要被改写为带有参数的形式,就像下面的样子:
[STAThread]
static void Main(string[] args)
{
if((args!= null) && (argsLength > 0))
{
string filePath = "" ;
for(int i=0 ;i<argsLength ;i++)
{
filePath += " " + args[i] ;
}
MainFormXcfFilePath = filePathTrim() ;
}
ApplicationRun(new MainForm());
}
关于自定义文件类型的注册,本文实现的是最基本的功能,如果需要更多的高级功能,也可以类推实现之。
FileDialog fd=new FileDialog(shell ,SWTOPEN|SWTMULTI);
String[] filter = {“jpg;png;gif”};//指定文件格式
fdsetFilterExtensions(filter);
String fileName=fdopen();
Systemoutprintln(“得到文件路径:”+fileName);
#/bin/bash
for a in {110};do
echo -n "$a"
echo -n A:
for i in {14};do
echo -en "$i"
done
echo
if [ $a -le 9 ];then
echo -n ' B:'
elif [ $a -gt 9 ];then
echo -n ' B:'
fi
for j in {58};do
echo -n "$j"
done
echo
done
结果的是从linux拷贝过来的,所以可能显示不出来效果,建议你复制代码到linux下试试
[root@localhost ~]# bash absh
1A:1234
B:5678
2A:1234
B:5678
3A:1234
B:5678
4A:1234
B:5678
5A:1234
B:5678
6A:1234
B:5678
7A:1234
B:5678
8A:1234
B:5678
9A:1234
B:5678
10A:1234
B:5678
我在里面加了个if语句,如果前面的数字小于等于9的时候,echo B前面加n个空格
如果数字大于9的时候,echoB前面加再多加两个空格,
条件可以不断增加。
我也是新手,希望能够给分。
#!/bin/bash
mkdir m{14}
for i in `seq 1 4`;do
cp m${i}txt m${i}
done
#对给点分=^_^=
一、语法结构
二、说明
(1)[ condition ] (注意condition前后要有空格)
非空返回true,可使用$验证(0为true,>1为false) 如:[ hadoop ] 返回true
空返回false 如:[ ] 返回false
(2)[ condition ] && echo OK ||echo notok 可以多条件,条件满足,执行后面的语句
三、整数比较
四、字符串比较
五、权限判断
六、文件系统类型判断
实例1 特权用户的高内存占用查询
案例2 远程登录的用户的详情查询
以上就是关于shell中ftp -in全部的内容,包括:shell中ftp -in、c#自定义文件类型、如何使用FileDialog指定文件格式选择文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)