How to access files in Java ME - java-me

I want to access the files encircled in this screenshot.
What path should I use?
This is for my JavaME application. file:///ParseExample/service1.xml doesn't seem to be the right one.
http://www.fileden.com/files/2010/5/28/2872707//projectfiles.JPG
Edit:
Here is my code:
FileConnection fconn = (FileConnection) Connector.open("file:///ParseExample/service1.xml", Connector.READ_WRITE);

If these are files that you are going to be bundling in your MIDlet JAR then you need to use Class.getResourceAsStream().

have you tried new File("ParseExample/service1.xml");?
This access the file with a relative path instead of a absolute path, as in your example. (You could also try "file://ParseExample/service1.xml"(only two slashes after the colon).
And, as funkybro said, if you are packing it in a jar, you need Class.getResourceAsStream()...

Related

Filepath to Documents folder independent of User

Is there a way to construct a filepath that links to the Documents folder of the active user. So instead of C:\Users\User\Documents\ something like C:\Active_User\Documents\
ps. I try to make use of this in KNIME.
The file chooser elements in KNIME understand a URL in the form of "knime://knime.workflow" which accesses the current workflow location regardless of higher directory path.
You could also use a Java Variable Edit to get the username in Java, which you use to create a string that can be used by the File Reader (or other node) as a flow variable.
It depends on what you're trying to achieve.
You can use
C:\Users\%USERNAME%\Documents
which will use the environment variable %USERNAME% (= current user).
In C#/.NET you can use Environment.SpecialFolder.MyDocuments like this:
Console.WriteLine("GetFolderPath: {0}",
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
In Java System.getProperty("user.home"); should give you the right base diretory to start with.

Is it possible to list embedded folder contents?

Is it possible to list embedded folder contents?
I want to load all files from specific folder(s), w/o having to edit file list after adding each new file.
Edit:
If I try sys.FileSystem.ReadDirectory(), I get a
"You cannot access the sys package while targeting flash (for
sys.FileSystem)"
error for Flash. But when I look in HaxeFlixel FlxAssets.hx file - somehow it does the trick for flash target.
How?
You can get an array containing the paths to all embedded images like so:
import openfl.Assets;
var imagePaths:Array<String> = Assets.list(AssetType.IMAGE);
If you don't specify an AssetType, list() returns all embedded assets regardless of their type.
On neko and cpp targets, You've got the sys.Filesystem.readDirectory(path:Stringh) method, that will give you all files and directories in the specific folder path. Is that what you're after?

How to get path to UITestActionLog.html from code

Each test case saves results to a separate UITestActionLog.html file. But in the end of each test case I'd like to move that .html to a different folder and rename it.
Is it possible to do so in, say, [TestCleanup()]? If yes, then how can I programmatically get .html report location?
The TestContext class contains several fields with "directory" in their names. These can be used to access the various directories associated with running the tests.
As well as managing the files as asked by your question the TestContext class has an AddResultFile method. The Microsoft documentation on this mehod is not clear, but it seems that the files are saved for failing tests and discarded for passing tests.
To get the directory in which the UITestActionLog file will be located, use the TestContext.TestResultsDirectory Property. You can use below code to get the full path:
string fullPath = TestContext.TestResultsDirectory +"\" +"UITestActionLog.html";

Exploiting and Correcting Path Traversal Vulnerability

I have a Java Web App running on Tomcat on which I'm supposed to exploit Path traversal vulnerability. There is a section (in the App) at which I can upload a .zip file, which gets extracted in the server's /tmp directory. The content of the .zip file is not being checked, so basically I could put anything in it. I tried putting a .jsp file in it and it extracts perfectly. My problem is that I don't know how to reach this file as a "normal" user from browser. I tried entering ../../../tmp/somepage.jsp in the address bar, but Tomcat just strips the ../ and gives me http://localhost:8080/tmp/ resource not available.
Ideal would be if I could somehow encode ../ in the path of somepage.jsp so that it gets extracted in the web riot directory of the Web App. Is this possible? Are there maybe any escape sequences that would translate to ../ after extracting?
Any ideas would be highly appreciated.
Note: This is a school project in a Security course where I'm supposed to locate vulnerabilities and correct them. Not trying to harm anyone...
Sorry about the downvotes. Security is very important, and should be taught.
Do you pass in the file name to be used?
The check that the server does is probably something something like If location starts with "/tmp" then allow it. So what you want to do is pass `/tmp/../home/webapp/"?
Another idea would be to see if you could craft a zip file that would result in the contents being moved up - like if you set "../" in the filename inside the zip, what would happen? You might need to manually modify things if your zip tools don't allow it.
To protect against this kind of vulnerability you are looking for something like this:
String somedirectory = "c:/fixed_directory/";
String file = request.getParameter("file");
if(file.indexOf(".")>-1)
{
//if it contains a ., disallow
out.print("stop trying to hack");
return;
}
else
{
//load specified file and print to screen
loadfile(somedirectory+file+".txt");
///.....
}
If you just were to pass the variable "file" to your loadfile function without checking, then someone could make a link to load any file they want. See https://www.owasp.org/index.php/Path_Traversal

ClassLoader.getSystemResource(...).getPath() seems to return wrong path

I'm trying to wrap code that requires two *.db4o data files for easy use. I've added the data files to my eclipse .classpath by placing the files in ${project_dir}/res/ and adding the line:
<classpathentry kind="src" path="res"/>
to my .classpath.
I then defined a default constructor to my wrapper class that takes no arguments but goes and finds the paths to the *.db4o files (the paths are required by the compiled code I'm using to set things up). My approach for getting the paths is:
String datapath = ClassLoader.getSystemResource("resource_name").getPath();
This works great when I debug/run my code in eclipse. However when I export it as a jar, I can see that the *.db4o files are in the jar, as well as my compiled code, but the path returned to "datapath" is of the form:
datapath = ${pwd}/file:${absolute_path_to_jar}!/{resource_name}
Is there something about the resource being inside of the jar that prevents an absolute path from working? Also, why is the behavior different simply because the code and resources live in a jar file? One last note is that while my application is intended for wider use (from PIG, python, etc. code) I'm testing it from Matlab which is where I'm getting the odd value assigned to "datapath".
Thanks in advance for any responses.
getSystemResource() returns URL to resource. If your resource is zipped in a jar file then the URL will point into it (with the "!" notation). getPath() returns the "path" part of the URL, not always an actual file path. URL can be one of many things, not just a file.

Resources