2017-12-24 7 views
-1

Ich benutze Visual Studio Community 2017 für Mac und ich habe Probleme mit C# 's file.exists() -Methode. Ich bin auch ziemlich neu in der Sprache.Wie kann ich Datei.exists() auf Mac reparieren?

if (!File.Exists("Content/" + path)) { 
    throw new FileNotFoundException("File " + path + " not found in Content folder."); 
} 

Hier versuche ich in einem Verzeichnis sehen namens „Content“, aber die Methode „File.Exists()“ gibt immer false zurück, wenn eine Bilddatei vorhanden ist, obwohl die Datei im Verzeichnis vorhanden ist.

Was mehr ist, der Code unter diesem, der auf den gleichen "Pfad" zugreifen wird, stürzt das Programm ab, weil es die Datei nicht erkennt (und ja, ich benutze auch OpenTK, aber das ist wahrscheinlich irrelevant).

Bitmap bmp = new Bitmap("Content/" + path); 

Einige Antworten sagen, dass ich Rechtschreibfehler oder unerwünschte Räume haben, aber ich weiß sehr wohl, dass dies nicht mit mir geschieht.

Einige Quellen sagen, dass das Projekt als Administrator oder "Berechtigungen gewähren" ausgeführt werden soll, aber selbst nach Tagen der Suche und Suche im Internet, habe ich immer noch nichts hilfreiches gefunden.

Einige Quellen über die Idee sprechen, gibt unterschiedliche Ergebnisse zu x64 in x86 laufen und ich sollte in 64-Bit-Aufbau das Programm versuchen, aber:

  1. Ich weiß nicht, wie das zu tun, und ich habe keine Informationen gefunden, die mir dabei helfen.
  2. Ich bin nicht einmal sicher, auf was "x" ich das Projekt laufen lasse.

Wie behebe ich dieses Problem in OSX? (Ich hoffe auch, dass ich mich gut erklärt habe, denn das könnte ein wenig kompliziert sein)

EDIT # 1: Aus den Kommentaren, die ich bisher gesehen habe, glaube ich, dass es hilfreicher wäre, die Hierarchie zu zeigen von meinem Projekt

otk1 (Directory) 
    otk1 (Directory) 
     References (Directory) 
     Packages (Directory) 
     Content (Directory) 
      image.jpg (Image file - The one I'm trying to open) 
     ContentPipe.cs (Csharp file which tries to access the Content directory) 
     GameClass.cs 
     OpenTK.dll.config 
     packages.config 
     Program.cs 
+6

Verwenden 'System.IO.Path.Combine()' Verzeichnis- und Dateipfade von Fragmenten zu bauen, nicht String-Verkettung von Worten und Schrägstrichen. Wenn Sie den Pfad nicht mit einem Schrägstrich beginnen, wird der Pfad relativ zum aktuellen Arbeitsverzeichnis bestimmt. Hast du das beabsichtigt? Wissen Sie, dass das Arbeitsverzeichnis auf das eingestellt ist, was Sie erwarten? –

+2

Ist der 'Inhalt /' ein untergeordneter Ordner in Ihrer Anwendung? Sie müssen _may_ ansonsten den vollständigen Pfad angeben. Hth .. – EdSF

+0

Was ist das Ergebnis von 'File.Exists (" Inhalt ");' und 'Directory.Exists (" Inhalt ");'? – Progman

Antwort

0

Ok, ich musste den gesamten Pfad zu der Bilddatei verwenden oder es würde nicht funktionieren.

Eg (Dies ist auf Mac):

File.Exists("/Users/usr/.../Project/.../file.ext") 
Verwandte Themen