Skip to content

Commit

Permalink
User can run jar file anywhere within ip
Browse files Browse the repository at this point in the history
  • Loading branch information
rexkoh425 committed Sep 24, 2024
1 parent eaa39c4 commit b631334
Showing 1 changed file with 49 additions and 6 deletions.
55 changes: 49 additions & 6 deletions src/main/java/TheThinker/File/NewFile.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,66 @@
import java.io.FileWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.net.URISyntaxException;
import java.util.Objects;
import java.util.Scanner;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.net.URISyntaxException;

public class NewFile {

public File file;
public final String FILE_DIR_FROM_IP_DIR = "src/main/java/TheThinker/Data";
public final String FILE_DIR_FROM_IP_DIR = "ip/src/main/java/TheThinker/Data";

public NewFile(String filename) {
File directory = new File(FILE_DIR_FROM_IP_DIR);

if (!directory.exists() || !directory.isDirectory()) {
System.out.println("Directory Data does not exist");
System.out.println("Please create Package /Data under src/main/java/TheThinker/");
String filePath = getRemainingPath();

if(filePath.equals("invalid")){
System.out.println("Please place jar file within ip directory");
}else {
File directory = new File(filePath);

if (!directory.exists() || !directory.isDirectory()) {
System.out.println("Directory Data does not exist");
System.out.println("Please create Package /Data under src/main/java/TheThinker/");
}
}

this.file = new File(FILE_DIR_FROM_IP_DIR + "/" + filename);
this.file = new File(getRemainingPath() + "/" + filename);
}

/**
* Returns path from anywhere within ip project to the text file which is Data directory
*
* @return Path
*/
public String getRemainingPath(){
String pwd = System.getProperty("user.dir").replace("\\", "/");
String[] userDirectories = pwd.split("/");
String[] absolutePathDir = FILE_DIR_FROM_IP_DIR.split("/");
int matchingDirIndexInUserPath = 0;
int matchingDirIndexInAbsolutePath = 0;
String matchingDir = "";
for(int i = userDirectories.length - 1; i >= 0; i--){
for(int j = absolutePathDir.length - 1; j >= 0; j--){
if(absolutePathDir[j].equals(userDirectories[i])){
matchingDirIndexInAbsolutePath = j;
matchingDirIndexInUserPath = i;
matchingDir = userDirectories[i];
}
}
}

if(matchingDir.isEmpty() && matchingDirIndexInUserPath == 0 && matchingDirIndexInAbsolutePath == 0){
return "invalid";
}
String newConstructedPath = "../".repeat(userDirectories.length - matchingDirIndexInUserPath - 1);
int indexOfMatchingDirInAbsolutePath = FILE_DIR_FROM_IP_DIR.indexOf(matchingDir);
newConstructedPath += FILE_DIR_FROM_IP_DIR.substring(indexOfMatchingDirInAbsolutePath + matchingDir.length()+1);
return newConstructedPath;
}

public boolean isFileExist() {
Expand Down

0 comments on commit b631334

Please sign in to comment.