Java I/O操作路径中的每个文件

Java I/O操作路径中的每个文件,java,filesystems,read-write,Java,Filesystems,Read Write,我有一个HTML帮助系统,我需要转换为SharePoint。最耗时的两个项目是更改文档链接和收集元数据。然而,我很幸运,因为这些数据很容易访问。每个文件都是HTML文档,简化如下: <body> <!--- Metadata follows Procedure Name: my document Procedure Number: xxxxx Use: freeform text explaining when procdure is used

我有一个HTML帮助系统,我需要转换为SharePoint。最耗时的两个项目是更改文档链接和收集元数据。然而,我很幸运,因为这些数据很容易访问。每个文件都是HTML文档,简化如下:

 <body>
   <!--- Metadata follows
   Procedure Name: my document
   Procedure Number: xxxxx
   Use: freeform text explaining when procdure is used
   Revision Date: xx/xx/xx
   By: responsible party for revision
   <!--- end metadata

   <h1>Procedure Name<\h1>
   <p>procedure background and narrative, with links, as needed, to other documents at \\documentation-server\path\document-name.html
 <\body>


如果您使用Java7,FileVisitor接口使您能够非常轻松地遍历文件树。请参见示例

您可以重写
visitFile
方法来处理文件,例如(未测试):


如果您使用Java7,FileVisitor接口使您能够非常轻松地遍历文件树。请参见示例

您可以重写
visitFile
方法来处理文件,例如(未测试):

以及:

至少这是最基本的想法。异常处理由您负责(

以及:


至少这是最基本的想法。异常处理由您自己负责(;

您需要html解析器-。然后链接每个文档,它将执行您想要执行的操作。

您需要html解析器-。然后链接每个文档,它将执行您想要执行的操作。

这似乎有点违反直觉,但java中的
文件
对象也表示目录

您可以通过执行以下操作来检查它是否为目录:

file.isDirectory()
如果是,您可以列出所有文件并相应地处理它们:

for(File f : file.listFiles()){
   handle(f);
}

这似乎有点违反直觉,但java中的
文件
对象也表示目录

您可以通过执行以下操作来检查它是否为目录:

file.isDirectory()
如果是,您可以列出所有文件并相应地处理它们:

for(File f : file.listFiles()){
   handle(f);
}

您可以编写一个java程序来处理一个文件,然后使用find和xargs在任意多个目标上执行它。您可以编写一个java程序来处理一个文件,然后使用find和xargs在任意多个目标上执行它。您还可以使用:file.listFiles(新的后缀文件过滤器(“html”))对于仅处理html文件,您还可以使用:file.listFiles(新的后缀文件过滤器(“html”))来仅处理html文件
for(File f : file.listFiles()){
   handle(f);
}