?? fss.java
字號:
getSubdirs.close();
}
}
}
} else {
JOptionPane.showMessageDialog(this, "不是目錄!", "Error",
JOptionPane.ERROR_MESSAGE);
menu1.setEnabled(true);
}
} else if (arg0.getClickCount() == 1) {// 單擊
menu1.setEnabled(true);
ToolTipManager.sharedInstance().setInitialDelay(1);
indexoffile = list.locationToIndex(arg0.getPoint());
if (indexoffile >= rr.length) {
return;
}
int k = list.getComponentCount();
int index = list.locationToIndex(arg0.getPoint());
String s1 = rr[index].substring(rr[index].indexOf("{") + 1,
rr[index].indexOf("}")), s2 = "權(quán)限:", s3 = rr[index]
.substring(rr[index].indexOf("}") + 1).trim(), s4 = "長度:";
if (s1.indexOf("R") != -1 || s1.indexOf("W") != -1) {
if (s1.indexOf("R") != -1) {
s2 += "讀";
}
if (s1.indexOf("W") != -1) {
s2 += "寫";
}
if (s1.indexOf("D") != -1) {
s2 += "刪";
}
if (s1.indexOf("X") != -1) {
s2 += "可執(zhí)行";
}
} else {
s2 += "(無)";
}
if (s3.indexOf("#") != -1) {
s4 += "(目錄)";
} else {
int l = Integer.parseInt(s3);
s4 += l;
}
list.setToolTipText(s2 + " " + s4);
}
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public class DeleteFile extends Thread {// 未完全正確實現(xiàn)
String file = "";
MouseListener f = null;
String operation = "";
int positon;
DatagramSocket deletes = null, editserver = null;
public DeleteFile(int newposition, String filename, String operation1,
MouseListener newf) {
file = filename;
operation = operation1;
f = newf;
positon = newposition;
}
public void run() {
try {
InetAddress add = InetAddress.getByName(ip.getText().trim());
deletes = new DatagramSocket();// add, 8000
byte[] b = (operation + file).getBytes();
DatagramPacket deletesp = new DatagramPacket(b, b.length, add,
8000);
deletes.send(deletesp);
deletes.close();
editserver = new DatagramSocket(8001);
byte[] editserverb = new byte[5];
DatagramPacket editserverp = new DatagramPacket(editserverb,
editserverb.length);
editserver.receive(editserverp);
editserver.close();
String editserverst = new String(editserverp.getData(), 0,
editserverp.getLength()).trim();
if (editserverst.equals("OK")) {
tip.setText("成功");// 未解決list刪除項
lmodel = new DefaultListModel();
if (operation.equals("DEL") || operation.equals("REN")) {
list.removeMouseListener(f);
}
ToolTipManager.sharedInstance().registerComponent(list);
} else {
tip.setText("失敗");
}
} catch (Exception e) {
if (deletes != null && !deletes.isClosed()) {
JOptionPane.showMessageDialog(new JFrame(),
"未完成的socket11關(guān)閉", "Error",
JOptionPane.ERROR_MESSAGE);
deletes.close();
} else if (editserver != null && !editserver.isClosed()) {
JOptionPane.showMessageDialog(new JFrame(),
"未完成的socket22關(guān)閉", "Error",
JOptionPane.ERROR_MESSAGE);
editserver.close();
}
e.printStackTrace();
}
}
}
public class jieshoudelete extends Thread {
public void run() {
while (true) {
try {
InetAddress add;
DatagramSocket jieshoudelserver = new DatagramSocket(8000);
byte[] jieshoudelserverb1 = new byte[400];
DatagramPacket jieshoudelserverp = new DatagramPacket(
jieshoudelserverb1, jieshoudelserverb1.length);
jieshoudelserver.receive(jieshoudelserverp);
add = jieshoudelserverp.getAddress();
jieshoudelserver.close();
String jieshoudelserverst1 = new String(jieshoudelserverp
.getData(), 0, jieshoudelserverp.getLength())
.trim();
String op = jieshoudelserverst1.substring(0, 3);
String filename = jieshoudelserverst1.substring(3 + host2
.length() + 1);
String result = "";
if (op.equals("DEL")) {
int pos = filename.lastIndexOf("\\");
File f = new File(filename.substring(0, pos + 1),
filename.substring(pos + 1));
String s2 = f.getAbsolutePath();
boolean del = notdeletef.contains(s2);
if (!del) {
if (FileOperate.delFolder(filename)) {
result = "OK";
Date currentDate = new Date();
String lastdate = currentDate.toString();
editedfiles.add("于" + lastdate + " , 文件: "
+ f.getAbsolutePath() + "被 " + host
+ " 刪除");
} else {
result = "NO";
}
} else {
result = "NO";
}
} else if (op.equals("REN")) {
int pos = filename.lastIndexOf("\\");
File f = new File(filename.substring(0, pos + 1),
filename.substring(pos + 1, filename
.indexOf("{")));
String s2 = f.getAbsolutePath();
String newname = filename.substring(filename
.indexOf("{") + 1, filename.indexOf("}"));
boolean done = f.renameTo(new File(filename.substring(
0, pos + 1), newname));
f.exists();
if (done) {
result = "OK";
} else {
result = "NO";
}
} else if (op.equals("MOV")) {
String old = filename.substring(0, filename
.indexOf("{"));
String newf = null;
boolean done = true;
newf = filename.substring(filename.indexOf("{")
+ host2.length() + 2, filename.indexOf("}"));
if (new File(old).isDirectory()) {
done = FileOperate.moveFolder(old, newf + "\\"
+ new File(old).getName() + "\\");
} else {
done = FileOperate.moveFile(old, newf);
}
if (done) {
result = "OK";
} else {
result = "NO";
}
}
DatagramSocket jieshoudelservers2 = new DatagramSocket();
byte[] jieshoudelservers2b = result.getBytes();
DatagramPacket jieshoudelservers2p = new DatagramPacket(
jieshoudelservers2b, jieshoudelservers2b.length,
add, 8001);
jieshoudelservers2.send(jieshoudelservers2p);
jieshoudelservers2.close();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO 自動生成 catch 塊
e.printStackTrace();
}
}
}
}
public class fasongdir extends Thread {// 相應用戶雙擊,返回子目錄
public void run() {
while (true) {
DatagramSocket fasongSubdirserver = null;
try {
InetAddress add;
fasongSubdirserver = new DatagramSocket(9871);
byte[] b = new byte[800];
DatagramPacket fasongSubdirserverp = new DatagramPacket(b,
b.length);
fasongSubdirserver.receive(fasongSubdirserverp);
add = fasongSubdirserverp.getAddress();
fasongSubdirserver.close();
String s = new String(fasongSubdirserverp.getData(), 0,
fasongSubdirserverp.getLength()).trim();
String operation = s.substring(0, 3);
s = s.substring(s.indexOf("\\") + 1);
File file = new File(s);
String[] list1 = null;
if (operation.equals("SUB")) {
root = true;
if (!file.exists()) {
return;
}
list1 = file.list();
} else if (operation.equals("PAR")) {
String fp1 = file.getParent();
if (v.contains(s)) {
list1 = new String[v.size()];
for (int i = 0; i < v.size(); i++) {
list1[i] = (String) v.elementAt(i);
}
root = false;
} else {
root = true;
File fp = new File(fp1);
s = fp1;
list1 = fp.list();
}
} else {
return;
}
String sub = "";
for (int i = 0; list1 != null && i < list1.length; i++) {
File f1 = null;
int count = 0;
if (root) {
f1 = new File(s, list1[i]);
} else {
f1 = new File(list1[i]);
}
if (f1.exists()) {
sub += "?" + list1[i]
+ printspaces(30 - list1[i].length()) + "{";
if (read.get(f1.getAbsolutePath()) == null) {
sub += "R";
count++;
}
if (exe.get(f1.getAbsolutePath()) == null) {
sub += "X";
count++;
}
if (write.get(f1.getAbsolutePath()) == null) {
sub += "W";
count++;
}
if (!notdeletef.contains(f1.getAbsolutePath())) {
sub += "D";
count++;
}
sub += "}" + printspaces(2 - count) + " "
+ f1.length();
if (f1.isDirectory()) {
sub += "#";
}
}
}
byte[] b2 = sub.getBytes();
DatagramSocket fasongSubdirs2 = new DatagramSocket();// add,
// 9001
DatagramPacket fasongSubdirs2p = new DatagramPacket(b2,
b2.length, add, 9001);
fasongSubdirs2.send(fasongSubdirs2p);
fasongSubdirs2.close();
fasongSubdirs2.close();
} catch (Exception e) {
e.printStackTrace();
if (fasongSubdirserver != null
&& !fasongSubdirserver.isClosed()) {
fasongSubdirserver.close();
}
}
}
}
}
public class BendiFrame extends JFrame implements ActionListener {
Checkbox readc, writec, deletec, exec;
JTextField f, f2, z1;
JPasswordField z2;
JFrame d4 = new JFrame("管理用戶");
Dialog d, d1, d2, d3, d5, d6, d7;
Checkbox[] chs = null;
Checkbox[] cmi = null;
JTextArea xiaoxi;
@SuppressWarnings("deprecation")
public BendiFrame() {
setSize(500, 500);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});
setTitle("本地文件系統(tǒng)");
Dimension sc = getToolkit().getScreenSize();
Dimension sz = getSize();
setLocation(sc.width / 2 - sz.width / 2, sc.height / 2 - sz.height
/ 2);
Container con = this.getContentPane();
JPanel pup = new JPanel();
pup.setLayout(new FlowLayout());
JButton b;
b = new JButton("設置權(quán)限");
b.addActionListener(this);
pup.add(b);
b = new JButton("刷新");
b.addActionListener(this);
pup.add(b);
con.add(pup, "North");
setVisible(true);
xiaoxi = new JTextArea();
xiaoxi.setLineWrap(true);
xiaoxi.setEditable(false);
xiaoxi.setEnabled(false);
JScrollPane pane = new JScrollPane(xiaoxi);
pane
.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
if (editedfiles.size() == 0) {
xiaoxi.setText("無記錄");
} else {
xiaoxi.setText("");
for (int i = 0; i < editedfiles.size(); i++) {
xiaoxi.append((String) editedfiles.elementAt(i) + "\n");
}
}
con.add(pane);
JPanel down = new JPanel();
down.setLayout(new FlowLayout(FlowLayout.CENTER));
JButton tianjia = new JButton("添加共享文件(夾)");
tianjia.addActionListener(this);
JButton shanchu = new JButton("刪除共享文件(夾)");
shanchu.addActionListener(this);
JButton liulan = new JButton("瀏覽已共享文件夾");
liulan.addActionListener(this);
down.add(tianjia);
down.add(liulan);
down.add(shanchu);
con.add(down, "South");
JPanel east = new JPanel();
east.setLayout(new GridLayout(3, 1));
JPanel ebp = new JPanel();
JButton eb = new JButton("管理用戶");
eb.addActionListener(this);
ebp.add(eb);
east.add(ebp);
ebp = new JPanel();
eb = new JButton("清除列表");// editedfiles
eb.addActionListener(this);
ebp.add(eb);
east.add(ebp);
ebp = new JPanel();
eb = new JButton("在線用戶");
eb.addActionListener(this);
ebp.add(eb);
east.add(ebp);
con.add(east, "East");
}
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
if (s.equals("設置權(quán)限")) {
d = new Dialog(this, "設置權(quán)限", true);
d.setSize(400, 200);
Dimension sc = d.getToolkit().getScreenSize();
Dimension sz = d.getSize();
d.setLocation(sc.width / 2 - sz.width / 2, sc.height / 2
- sz.height / 2);
d.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
d.dispose();
}
});
JPanel up = new JPanel();
up.setLayout(new FlowLayout());
f = new JTextField(20);
JButton b = new JButton("瀏覽...");
b.addActionListener(this);
up.add(f);
up.add(b);
d.add(up, "North");
readc = new Checkbox("讀", true);
writec = new Checkbox("寫", true);
deletec = new Checkbox("刪除", true);
exec = new Checkbox("可執(zhí)行", true);
JPanel checkp = new JPanel();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -