由于=$CS1="no"
方法不会删除文件“ Registry.txt”,我试图找到该漏洞已经感到沮丧,将近2天。我使用的是GUI,每次单击registry.delete()
的行,然后单击“禁止”按钮时,它不会删除文件“ Registry.txt”,并且不会写入要么!但是,如果我从另一个类(例如具有JTable
方法的类)执行此操作,则它将正确清除。我要要做的是从Registry.txt中删除一行,在另一个.txt文件中写入所有不包含某个main()
名称的行,然后将其重命名为Registry.txt 。我不知道发生了什么。下面是我的代码:
String
答案 0 :(得分:0)
我认为我们没有足够的数据来确切了解为什么会发生这种情况,但是我可以给您一些怀疑。
File.delete()
引发四个可能的异常;其中三个适用于此处。 NoSuchFileException
(值得特别检查),IOException
和SecurityException
。 NoSuchFileException
源自IOException
,无论如何都会被捕获;尽管您可能仍想抓住它,因为将其投射到IOException
会删除相关数据。 SecurityException
通常是安全管理者遇到的麻烦,这种情况一直在基于Web的程序上发生。我想知道您的文件是某种小应用程序还是现代的等效应用程序,即Web应用程序? SecurityException
是RuntimeException
,因此您不必为此捉襟见肘,但是您可以而且应该这样做。那可以解释世界。
最后,您也可以使用File.deleteIfExists()
。如果实际存在要删除的文件,则返回true;如果找不到该文件,则返回false。值得一看,因为如果您的路径倾斜并且在提供的位置找不到该文件,则不会删除该文件。有理由认为您的程序可能与您想像的目录具有不同的工作目录。不过,这与检查NoSuchFileException
大致相同。
您甚至可以使用System.out.println(System.getProperty("user.dir"))
检查您的工作目录。
我的钱在SecurityException
上,或者路径错误。但是,如果我对此有误,请告诉我们其他按钮代码,这会很好,因为那里也可能存在相关问题。