我正在尝试编写一个从服务器删除文件的简单程序。我已经读取了xml的文件,但它没有从删除文件中提取程序编译没有错误,但我觉得我遗漏了一些会从xml中提取网址的内容。这是我到目前为止所拥有的。我知道它可能很容易,但我已经坚持了一段时间。
add_action( 'template_redirect', 'wpsites_attachment_redirect' );
function wpsites_attachment_redirect(){
global $post;
if ( is_attachment() && isset($post->post_parent) && is_numeric($post->post_parent) && ($post->post_parent != 0) ) :
$actual_link = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$actual_link = $actual_link.'/'.$post->post_parent;
$actual_link = str_replace('/wp/','/',$actual_link);
wp_redirect( $actual_link, 301 );
exit();
wp_reset_postdata();
endif;
}
以下是XML
的示例import folder.AvailableBuilds;
import java.io.File;
public class Cleaner {
public static void main(String[] args) {
File file = new File("xtf.xml");
JAXBContext configContext;
try {
configContext = JAXBContext.newInstance("path");
Unmarshaller unmarshaller = configContext.createUnmarshaller();
AvailableBuilds theBuilds = (AvailableBuilds) unmarshaller.unmarshal(file);
for (AvailableBuilds.BuildGroup group: theBuilds.getBuildGroup()) {
System.out.println("" + group.getType());
}
} catch (JAXBException e) {
e.printStackTrace();
}
String[] x;
if(file.isDirectory()){
x = file.list();
for (int i=0; i<x.length; i++) {
File files = new File("xtf.xml");
files.delete();
}
}
}
}
答案 0 :(得分:0)
首先,你需要分开两件事:
我会为此写两种不同的方法。
目前,我不了解您是如何从XML获取路径的,但您已经接近删除文件了。
除外File files = new File("xtf.xml");
files.delete();
实际上删除了XML文件本身。
知道我不知道您的XML文件格式以及您将如何解析它,让我们假设它将返回一个路径列表。
public static void main(String[] args) {
List<String> filePaths = getFilePathsFromXML( "xtf.xml" );
for ( String path : filePaths ) {
deleteRecursively( path );
}
}
/**
* Deletes a file or folder. If a given path is a folder then deletes all files and folders recursively first
*
* @param String path - path of a file or directory
**/
static void deleteRecursively( String path ) {
File file = new File( path );
if ( file.isDirectory() ) {
for ( String subPath : file.list() ) {
deleteRecursively( subPath );
}
}
try {
file.delete();
} catch ( Exception e ) {
e.printStackTrace();
}
}
/**
* Gets a list of file pats from an XML file.
*
* @param String fileName - the XML file name for reading
**/
static List<String> getFilePathsFromXML( String fileName ) {
List<String> result = new ArrayList<String>();
// figure out how to read paths from file
return result;
}