(C#) Pfad des temporären Ordners rausfinden

keks1984

Erfahrenes Mitglied
Guten Morgen

ich generiere innerhalb meines Programmes eine PDF und diese muß ich dann irgendwo speichern. Da die ganze Sache auf nem Server läuft und ich dort nur auf den temp Ordner zugreifen darf muß ich nun den jeweiligen temp Ordner des Servers rausfinden!

Ich hab auch schon was gefunden. Path.GetTempPath() diese Methode soll mir angeblich den Pfad zurückgeben. Jetzt hab ich das gemacht aber den Pfad gibts gar nicht! Ich find jedenfalls die Datei nicht!

Hab jetzt noch die Methode Path.GetTempFileName() gefunden was ist jetzt da der Unterschied? Müßte ich vielleicht diese Methode nehmen?

LG
 
Das was du brauchst ist die Methode "Path.GetTempPath()" die liefert dir den im Betriebssystem vorgegebenen Ordner zurück. Falls es nicht so ist, schau dir mal im Debugger was er dir so alles zurückliefert. Ansonsten hast du noch die Möglichkeit über

Environment.GetEnvironmentVariable("TEMP") oder Environment.GetEnvironmentVariable("TMP")

An deinen Ordner zu kommen. Der Unterschied von der "Path.GetTempFileName()" ist das er eine 0 Byte Temp Datei erstellt und dir den Ordner + Dateinamen zurückliefert von der erstellten Datei. Die findest du dann in deinem Temporären Ordner und die haben meistens den Namen tmp$$.tmp die Dollarzeichen stehen für Zahlen.
 
Mmh ok dann hab ich zumindest mal die richtige Methode gefunden! Also dieses "Environment.GetEnvironmentVariable("TEMP")" gibt mir das gleiche zurück wie "Path.GetTempPath()". Komisch muß ich mal bei den Admin´s fragen was die da mit meinem Benutzeraccount angestellt haben.

Ich hab da davon abgesehen auch nen Ordner "temp" der ist direkt auf C, wenn nun jemand x-beliebig den temp Ordner wo anderst als normal erstellt? Erkennt dann die Methode das?
 
Naja, du musst unterscheiden zwischen dem Temp-Folder der dem Benutzer zugewiesen ist, und _irgendein_ Verzeichnis, das von Benutzer selbst angelegt wurde und eben "Temp" heißt.
 
Keine Ahnung welcher temp ordner nun meinem Benutzer zugewiesen wurde.

Naja trotzdem danke, jetzt weiß ich jedenfalls mal dass die Methode schon richtig ist!
 
Du kannst ganz einfach nachschauen was für Werte bei dir vorgegeben sind und dementsprechend es vom Administrator ändern lassen falls die Berechtigungen nicht für den Ordner bereitstehen. Drücke dazu Windows Taste + Pause -> Erweitert -> Umgebungsvariablen. Da stehen bei mir z.B. TMP und TEMP für den Ordner C:\Temp drin.
 
Ich glaube das Was du suchst ist die Systemumgebungsvariable TMP und nicht die Benutzerumgebungsvariable TMP.
Die bekommst du so:

Code:
System.Environment.GetEnvironmentVariable("TMP", EnvironmentVariableTarget.Machine);

mfg
 
SO ich hab dem bescheuerten Admin jetzt mal bescheid gesagt! Sowas sperrt der einfach den Ordner wo sind wir den... tssss

Ich hab jetzt ein anderes Problem! Und zwar gibt die Methode Path.GetTempPath() den Pfad wie folgt aus:

C:\\Dokumente und Einstellungen\\

was soll das jetzt? So findet er mir natürlich gar nix! Kann mir jemand sagen was das soll?
 
Mmh nö habs nachgeschaut in der Umgebungsvariable stehts richtig drin! Ich hab hier mal den code mach ich da evtl. was falsch?

Code:
DateTime date = DateTime.Now;
				
path = Path.GetTempPath();
path += date.ToString() + ":" + date.Millisecond.ToString() + ".pdf";
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@path, FileMode.Create));
writer.SetEncryption(PdfWriter.STANDARD_ENCRYPTION_128, null, null, PdfWriter.AllowPrinting);
 

Neue Beiträge

Zurück