Wie gebe ich den Pfad an zu einem File im selben ordner?

1 Antwort

In http://docs.oracle.com/javase/8/docs/api/java/io/File.html findest du Folgendes:

A pathname, whether abstract or in string form, may be either
absolute or relative. An absolute pathname is complete in
that no other information is required in order to locate the file that it
denotes. A relative pathname, in contrast, must be interpreted in terms of
information taken from some other pathname. By default the classes in the
java.io package always resolve relative pathnames against the
current user directory. This directory is named by the system property
user.dir, and is typically the directory in which the Java
virtual machine was invoked.

Das heißt, du musst einfach nur den Dateinamen angeben, ohne irgendeinen Pfad, und bist meistens damit im Verzeichnis, wo die JAR-Datei aufgerufen wurde.

C++ ShellExecute öffnet programm im falschen Verzeichnis

Hallo Leute

Ich habe zwei kleine Programme mit c++ geschrieben. Startet man das erste, so öffnet sich (durch ShellExecute) das zweite Programm. Nun ist das Problem, dass Programm2 in einem Unterordner liegt, und eine .txt datei öffnen soll, die im Selben Ordner wie Programm2 liegt (siehe Bild). Wenn aber Programm2 durch Programm1 ausgeführt wird, so findet er die txt-Datei nicht. Es ist also, als ob Programm2 im selben Verzeichnis wie Programm1 liegt, denn wenn ich bei Programm2 statt fopen("Text.txt"), fopen("Files\\Text.txt") schreibe, funktioniert es. Meine Frage ist nun: was muss ich ändern (ich nehme mal an beim Aufruf der Funktion ShellExecution()), damit es so funktioniert, wie ich es haben möchte (ohne Verwendung eines absoluten Pfads!).

hier einmal der Quellcode: Programm 1:

#include <iostream>
#include <Windows.h>

using namespace std;

int main()
{
    cout<<"Starte Programm2..."<<endl;
    ShellExecute(NULL, "open", "Files\\Programm2.exe", NULL, NULL, SW_NORMAL);
    
    system("pause");
    
    return 0;


}

Programm 2:

#include <iostream>
#include <Windows.h>

using namespace std;

int main()
{
    FILE * f;
    char buffer[100];
    
    f = fopen("Files\\Text.txt", "r");
    if(f == NULL)
    {
        cout<<"Couldn't find Text.txt"<<endl;

    }
    else
    {
        while(!feof(f))
        {
            if(fgets(buffer, 100, f) == NULL)
                break;

        }
        cout<<buffer<<endl;
        fclose(f);
    }

    cout<<endl;
    system("pause");
    
    return 0;


}

Ich möchte auf jeden Fall einen relativen Pfad verwenden ("Files\Programm2.exe" ). Ich bedanke mich jetzt schon mal für all eure (hoffentlich) hilfreichen Antworten!

...zur Frage

datei-pfad filewriter?

Hey, ich schaffe es einfach nicht den pfad einer datei richtig anzugeben (nicht den absoluten).
Beim FileReader klappt es:
InputStream in = getClass().getResourceAsStream("/text.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(in));

wie schaff ich das beim FileWriter? möchte in eine bestehende Text-Datei schreiben und keine neue anlegen.

hoffe ihr könnt mir helfen, suche heute schon den ganzen tag nach einer lösung.

mfg simon

...zur Frage

Wie kann ich auf eine Datei innerhalt meine jar File zugreifen?

Hi, ich habe mein Java Programm ausführbar gemacht und nun meine jar file auf dem Desktop. In dieser Jarfile, habe ich resources, genauer gesagt eine batch Datei. Diese Batchdatei soll irgendwann mal aufgerufen werden. Der Aufruf steckt im Code.

Runable.getRuntime().exec("cmd", "/C", "start Dateipfad"};

jedoch funktioniert das nicht, weil er mir sagt er findet die Datei nicht! Der Pfad ist aber eigentlich richtig, ich denke das Problem liegt darin, das er nicht richtig in die jar File reinschaut. Wenn ich meine jar File mit 7Zip öffne, kann ich darin meine Cmd.bat Datei sehen. Mein Pfad sieht so aus: C:/Users/.../Desktop/run.jar/Cmd.bat (run.jar ist meine Java File und Cmd.bat ist die Batch file, welche sich in meinem Java File befindet) Wie kann ich auf die batch Datei zugreifen?

...zur Frage

Batch Datei Ordner mit Variablen im Pfad erstellen

Hallo zusammen

Ich bin noch recht unerfahren im Batch schreiben, möchte aber ein Batch schreiben, der einen Ordner auf meinem Desktop erstellt. Der Name des Ordners soll vom Benutzer selbst eingetragen werden. Mein Batch sieht so aus:

@echo off

set /p Name = Ordner Name:

MD C:\Users\schumad1\Desktop\%Name%\

ECHO Erfolgreich erstellt

pause

Das Problem ist das die Variable im Pfad gar nicht berüksichtigt wird. Wenn ich den Batch starte kommt eine Fehlermeldung, die meint das der Ordner "C:\Users\schumad1\Desktop\\" bereits existiert. Was mach ich falsch?

...zur Frage

VISUAL BASIC Pfad vervollständigen?

Hey Leute,

ich möchte mit einem Programm eine Datei in mehrere Ordner verschieben/kopieren. Das ganze klappt auch. Nur muss ich die Pfade manuell (alle relativ gleich) angeben. Ein Pfad sieht so aus Ordner/23432/local^ Also zwischen Ordner & local ist bei jedem Pfad eine unterschiedliche zahl..

Ich habe das ganze momentan so :

Dim ofDialog As New OpenFileDialog
            If ofDialog.ShowDialog() = Windows.Forms.DialogResult.OK Then
               
File.Copy(ofDialog.FileName, Path.Combine("Ordner/23432/local", Path.GetFileName(ofDialog.FileName)))
    
File.Copy(ofDialog.FileName, Path.Combine("Ordner/23432/local", Path.GetFileName(ofDialog.FileName)))

ich möchte dass das Programm die Datei die ich verschieben möchte immer in den Local Ordner rein verschiebt. Ist es denn möglich das Programm den Pfad zu vervollständigen lassen so das ich die Zahlen Ordner/23432/local nicht angeben muss sondern das Programm das ganze eigenständig macht?

...zur Frage

Was möchtest Du wissen?