In Windows command line:
Invalid command.
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:
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:
