In Windows command line:
ftp> chmod
Invalid command.
Do it by "quote" command:
Invalid command.
ftp> quote
Command line to send site chmod 666 filename.txt
200 CHMOD command successful.
缺點:Command line to send site chmod 666 filename.txt
200 CHMOD command successful.
FTP裡下chmod指令無法使用萬用字元(*, wildcard),也無法使用 -R flag。
好不容易知道怎麼透過FTP下chmod了... 不實用
Using Apache Commons Net 3.2 API in java:
1: //using public int sendCommand(String command, String args)
2: //實在不知道那些字要放在command, 哪些字要放在args, try了好幾次
3: //TEST#1:
4: FTPClient.sendCommand("quote", "site chmod 666 *");
5: //command result=500 'QUOTE site chmod 666 *': command not understood.
6:
7: //TEST#2:
8: FTPClient.sendCommand("quote site chmod", "666 *");
9: //command result=500 'QUOTE site chmod 666 *': command not understood.
還有error message回傳的指令都寫大寫也很奇怪.. unix大小寫有差啊,我要小寫!!
最後讀了public int sendCommand(int command, String args)方法才知道他根本就沒提供quote這個指令OTZ||| 從FTPCommand看起來,"SITE"是最有可能會動的指令:
1: //TEST#3:
2: FTPClient.sendCommand("site", "chmod 666 *");
3: //command result=550 *: A file or directory in the path name does not exist.
1: //TEST#4:
2: FTPClient.sendCommand("site", "chmod 666 filename.txt");
3: //command result=200 CHMOD command successful.
方案二,登入FTP後先下umask指令來控制檔案權限
In Windows command line:
ftp> quote
Command line to send site umask 000
200 UMASK set to 000 (was 007)
Command line to send site umask 000
200 UMASK set to 000 (was 007)
Using Apache Commons Net 3.2 API in java:
1: //TEST#5:
2: FTPClient.sendCommand("site", "umask 002");
3: //command result=200 UMASK set to 002 (was 007)
又是另一項作業..
Ref:
Post a Comment