当前位置: 首页 > 知识库问答 >
问题:

如何在java中检测我的程序在什么用户中

缪宪
2023-03-14

我在一个字处理器上工作,我需要知道我的程序是在什么用户中,这样我的程序就可以在启动时自动检测它,并将文件保存在他们的我的文档中。Im使用Java。而且我没有目录检测的预编码。但如果这有帮助,这里是我的代码:

import javax.swing.*;

import java.io.*;
import java.awt.event.*;
import java.util.*;


@SuppressWarnings("serial")
class Word1 extends JFrame implements ActionListener, KeyListener{
    ClassLoader Idr = this.getClass().getClassLoader();
    static JPanel pnl = new JPanel();
    public static JTextField Title = new JTextField("Document",25);
    static JTextArea Body = new JTextArea("Body", 48, 68);
    public static JScrollPane pane = new JScrollPane(Body);
    JTextField textField = new JTextField();
    JButton saveButton = new JButton("Save File");
    JButton editButton = new JButton("Edit File");
    JButton deleteButton = new JButton("Delete");
    public static String Input = "";
    public static String Input2 = "";
    public static String Text = "";
    public static void main(String[] args){
        @SuppressWarnings("unused")
        Word1 gui = new Word1();
    }
    public void ListB(){
        // Directory path here
        String username = JOptionPane.showInputDialog(getContentPane(), "File to Delete", "New ", JOptionPane.PLAIN_MESSAGE);
        String path = "C:\\Users\\"+username+"\\Documents\\";
        File folder = new File(path);
        File[] listOfFiles = folder.listFiles();

        for (int i = 0; i < listOfFiles.length; i++)
        {

            if (listOfFiles[i].isFile())
            {
                String files = listOfFiles[i].getName();
                if (files.endsWith(".txt") || files.endsWith(".TXT")){
                    ArrayList<String> doclist = new ArrayList<String>();
                    doclist.add(files);
                    System.out.print(doclist);
                    String l = doclist.get(i);
                }

            }
        }
    }
    public Word1()
    {
        ListB();
        setTitle("Ledbetter Word");
        setSize(800, 850);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        add(pnl);
        Body.setLineWrap(true);
        Body.setWrapStyleWord(true);
        Body.setEditable(true);
        Title.setEditable(true);
        Title.addKeyListener(keyListen2);
        saveButton.addActionListener(this);
        editButton.addActionListener(len);
        deleteButton.addActionListener(len2);
        pane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        Body.addKeyListener(keyListen);
        pnl.add(saveButton);
        pnl.add(editButton);
        pnl.add(deleteButton);
        pnl.add(Title);
        pnl.add(pane);
        setVisible(true);
    }
    KeyListener keyListen = new KeyListener() {
        @Override
        public void keyTyped(KeyEvent e) {
            @SuppressWarnings("unused")
            char keyText = e.getKeyChar();
        }

        @Override
        public void keyPressed(KeyEvent e) {

        }//ignore

        @Override
        public void keyReleased(KeyEvent e) {
            Word1.Input = Body.getText();
        }//ignore
    };
    KeyListener keyListen2 = new KeyListener() {
        @Override
        public void keyTyped(KeyEvent e) {
            @SuppressWarnings("unused")
            char keyText = e.getKeyChar();

        }

        @Override
        public void keyPressed(KeyEvent e) {

        }

        @Override
        public void keyReleased(KeyEvent e) {
            Word1.Input2 = Title.getText();
        }
    };
    public void keyTyped(KeyEvent e) {

    }

    public void keyPressed(KeyEvent e) {

    }

    public void keyReleased(KeyEvent e) {

    }
    @Override
    public void actionPerformed(ActionEvent e) {
        if( e.getSource() == saveButton ){

            try {
                BufferedWriter fileOut = new BufferedWriter(new FileWriter("C:\\Users\\David\\Documents\\"+Title.getText()+".txt"));
                fileOut.write(Word1.Input);
                fileOut.close();
                JOptionPane.showMessageDialog(getParent(), "Successfully saved to your documents", "Save", JOptionPane.INFORMATION_MESSAGE);
            } catch (IOException ECX) {
                JOptionPane.showMessageDialog(getParent(), "There was an error saving your file", "Save-Error", JOptionPane.ERROR_MESSAGE);
            }

        }
    }
    ActionListener len = new ActionListener(){
        @SuppressWarnings({ "resource" })
        public void actionPerformed(ActionEvent e){
            if(e.getSource() == editButton);{
                String filename = JOptionPane.showInputDialog(getParent(), "File to Delete", "Deletion", JOptionPane.PLAIN_MESSAGE);
                Word1.Body.setText("");
                try{
                    FileReader file = new FileReader(filename+".txt");
                    BufferedReader reader = new BufferedReader(file);
                    String Text = "";
                    while ((Text = reader.readLine())!= null )
                    {
                        Word1.Body.append(Text+"\n");
                    }
                    Word1.Title.setText(filename);
                } catch (IOException e2) {
                    JOptionPane.showMessageDialog(getParent(), "Open File Error\nFile may not exist", "Error!", JOptionPane.ERROR_MESSAGE);
                }
            }

        }
    };

    ActionListener len2 = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            if(e.getSource() == deleteButton);{
                String n = JOptionPane.showInputDialog(getParent(), "File to Delete", "Deletion", JOptionPane.PLAIN_MESSAGE);
                Delete(new File(n+".txt"));
            }
        }
    };
    public void Delete(File Files){
        Files.delete();

    }
}

共有1个答案

梁兴文
2023-03-14

假设您的目标是windows(我的文档提示),您可以尝试这样做。

字符串myDocumentsPath=System.GetProperty(“user.home”)+“/documents”;

 类似资料:
  • 问题内容: 我编写了一个SWT UI,它的主要功能是在StyledText控件中显示文本。我想为+ 添加一个处理程序,以便在按下该快捷方式时将焦点设置为搜索框。我尝试使用以下代码检测按键。 我期待在按+ 时看到以下输出: 但是,实际上,我实际上看到了以下内容。 我有两个问题: Display.addFilter(…)是添加全局快捷方式的最佳方法吗?我尝试了Display.addListener(…

  • 样本输出字符串:检测到汉娜输出元音的最后一部分:检测到辅音:h n n h

  • 我有两个来自不同组织(租户)的SharePoint网站: 房客1:abc.sharepoint.com 房客2:xyz.sharepoint.com 已在azure portal for Tenan 1'abc上注册并授予应用程序所需的权限。sharepoint。com”,以便租户2用户可以访问它:“xyz”。sharepoint。com' 认证工作正常 当我与租户1的abc用户进行身份验证时,对

  • 问题内容: 我尝试了一些方法来检测代码中的EOF,但仍然无法正常工作。我尝试使用BufferedReader,Scanner和char u001a标记EOF,但对我的代码仍然没有任何意义。这是我的最后一个代码: 该程序应该在到达EOF时停止运行,但是我不知道为什么,由于某些原因,它会继续运行并导致运行时错误。请帮忙。顺便说一句,我是新来的,如果对我的问题还不清楚,很抱歉,谢谢您:) 问题答案: 由

  • 我尝试了一些方法来检测我的代码中的EOF,但它仍然不起作用。我试过使用BufferedReader、Scanner和使用charu001a来标记EOF,但仍然对我的代码没有任何意义。这里是我的最后一段代码: 程序应该在已经到达EOF时停止,但我不知道为什么,由于某些原因,它继续运行并导致运行时错误。请帮帮忙。顺便说一下,我是新来的,如果我的问题不是很清楚,很抱歉不能理解,谢谢你之前:)

  • 我对一些代码进行了分析,并对花费了这么多时间感到惊讶。 但我发现这快了大约5倍: 下面是Math.min的代码以供参考: 注意:我的用例是对称的,上面的情况都适用于max,而不是min。 我在我的应用程序中添加了以下代码,以尝试获得更好的数据: 这将打印每个新触摸事件的运行比率。当我在屏幕上旋转手指时,首先记录的比率是或或。这让我觉得这个测试不是很准确地测量时间。随着收集到更多的数据,比率往往在和