Tag: 文件系统

是否可以使用Java格式化记忆棒,笔式驱动器或磁盘?

我想创建一个多平台实用程序来格式化/擦除记忆棒,磁盘等。 是否可以在Java中执行此操作? 或者我是否需要为每个操作系统平台调用本机方法?

如何检测java中的文件系统已经改变

我想知道如何在java中有效地实现文件系统更改? 假设我在文件夹中有一个文件并修改该文件。 我希望尽快通过java通知这个变化(如果可能的话,不经常轮询)。 因为我认为我可以每隔几秒调用java.io.file.lastModified但我根本不喜欢该解决方案的声音。 alfred@alfred-laptop:~/testje$ java -version java version “1.6.0_18” Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)

Java中的XA事务文件访问是否有开源解决方案?

是否可以在Java中对文件系统进行XA事务访问? 我想在事务的边界内操作文件,我的事务必须通过JTA参与分布式事务(所以我想文件系统需要作为XAResource访问)。 我不需要支持细粒度的读/写文件访问; 将每个文件视为记录对我的需求是足够好的。 有人知道一个已经这样做的开源项目吗? 我不想实现这个烂摊子只是为了发现它已经完成了…… 我听到一些传言说JBoss Transcations会增加对此的支持(参见例如此讨论 ),但未能找到关于此的正式声明。 顺便说一句,如果您需要事务性文件访问但不要求事务参与两阶段提交,我建议您查看Apache Commons Transaction 有关复杂性的好文章可以在这里找到。

检查文件是否完整写入

目前我正在开发一个项目,它在其中一个例程中处理源目录中的文件。 有一个Java进程正在查找指定的目录,并尝试读取和处理文件(如果存在)。 文件退出大并由其他第三方进程更新。 问题是如何检查文件是否完整写入? 我正在尝试使用file.length()但看起来即使写入过程尚未完成它也会返回实际大小。 我觉得解决方案应该依赖于平台。 任何帮助,将不胜感激。 更新:这个问题与副本没有什么不同,但它有一个高评级的工作代码片段的答案。

枚举外部驱动器

在java中,您可以使用File.listRoots()来获取系统中的所有驱动器。 我期待只获得外部驱动器,即USB驱动器,外部硬盘,光驱,软盘等。 在java中有没有办法做到这一点? 如果没有,原生C ++代码也会很好。 在这种情况下,我需要Windows和Linux代码。

如何为Java File对象的失败调用获取有意义的消息(mkdir,rename,delete)

在使用File.mkdir和朋友时,我注意到他们不会在失败时抛出exception! 值得庆幸的是,FindBugs指出了这一点,现在我的代码至少检查了返回值,但我仍然看不到有关调用失败原因的有意义信息! 如何找出调用这些File方法失败的原因? 是否有一个很好的替代品或库来处理这个问题? 我已经在SO和Google上进行了一些搜索,并发现了关于此主题的令人惊讶的小信息。 [更新]我试过VFS,它的例外没有任何有用的信息。 例如,尝试移动最近删除的目录导致Could not rename file “D:\path\to\fileA” to “file:///D:/path/do/fileB”. 没有提到fileA不再存在。 [更新]业务要求仅限于JDK 1.6解决方案,因此JDK 1.7已经淘汰

为什么user.dir系统属性使用Java?

我读过的几乎每篇文章都告诉我,你不能用Java创建chdir 。 这个问题的公认答案说你不能用Java做到这一点。 但是,这里有一些我尝试过的东西: geo @ codebox:〜$ java -version java版“1.6.0_14” Java(TM)SE运行时环境(版本1.6.0_14-b08) Java HotSpot(TM)客户端VM(内置14.0-b16,混合模式,共享) 这是我正在使用的测试类: import java.io.*; public class Ch { public static void main(String[] args) { System.out.println(new File(“.”).getAbsolutePath()); System.setProperty(“user.dir”,”/media”); System.out.println(new File(“.”).getAbsolutePath()); } } geo @ codebox:〜$ pwd /家/地理 geo @ codebox:〜$ java Ch /家庭/地理/。 /媒体/。 请解释为什么这有效。 从现在开始我可以使用它并期望它在所有平台上以相同的方式工作吗?

如何使用相对路径而不是绝对路径?

所以我对Java有一个奇怪的问题。 我正在读写文件,所以路径对我很重要。 我希望所有文件都是从相对路径写入和读取的(即在我的类和java文件的其余部分的文件夹中)。 我这样写文件: FileWriter fw = new FileWriter(outfile,true); fw.write(data); fw.close(); outfile就像’out.txt’(即我们希望输出进入的文件的名称)。 问题是,文件是在/home/me/创建的,而不是我的其他文件的路径。 难道我做错了什么? 或者我如何获取存储在相对目录中的文件?

如何仅从服务器下载新文件?

我有很多CSV文件,我想每天从雅虎财务中下载。 我希望我的应用程序读取文件的创建日期(在我的计算机上,而不是服务器上)。 如果创建日期早于今天,则应下载新文件(因为它将具有新数据)。 如果没有,则不应下载新文件,并且相关计算器(基本上是我的应用程序)应使用最后下载的文件作为特定股票代码。 我做了一些谷歌搜索,并找到了Apache POI项目。 这是最好的方式,有更好的方法,你会推荐什么? JNI在这里有关系吗?

在java中识别磁盘类型的文件系统格式,如ntfs,fat16 / 32或ext

有没有办法在java中找出磁盘的文件系统格式? 例如对于Windows硬盘驱动器它可能是NTFS,对于zip驱动器它是FAT32。