2017-03-20 1 views
0

J'ai du code C# qui utilise des chemins absolus pour identifier les emplacements de fichiers. Lorsque je débogue le code, les chemins continuent d'être absolus (confirmés en utilisant Console.WriteLine). Lorsque le code démarre à partir de Windows Task Scheduler (à son heure déclenchée), les chemins s'affichent comme relatifs (encore une fois, confirmés par Console.WriteLine). Cependant, si je tente d'exécuter le code directement (à l'aide de l'exe compilée, ou lancé depuis Task Scheduler), les chemins s'affichent de nouveau comme absolus!Code C# passant des chemins absolus aux chemins relatifs pendant la tâche planifiée

Voici comment j'appelle chemins:

string path = Directory.GetCurrentDirectory(); 
string strSCPath = path + @"\Scorecards"; 
string filePath = strSCPath + @"\" + file + ".txt"; 

Et comment je vérifie la condition relative/absolue:

Console.WriteLine("Filepath defined as: {0}", filePath"); 

Et quand je lance à l'aide du Planificateur de tâches:

Filepath defined as .\Scorecards\file.txt 

Mais en cours d'exécution manuellement:

Filepath defined as D:\Users\Files\Scorecards\file.txt 

Y at-il un paramètre dans mon code ou dans le planificateur de tâches lui-même, je ne parviens pas à définir correctement ce qui causerait la condition ci-dessus?

+1

Veuillez fournir un [mcve]. S'il vous plaît également voir [demander]. – Igor

+1

"J'ai du code C#". Vous avez vraiment besoin de partager le code dans cette question ... – spender

+0

Si vous partez du * répertoire courant *, avez-vous fait quelque chose pour vous assurer que le * répertoire courant * au démarrage est correctement configuré? –

Répondre

0

Quelle est la sortie de cela? Il devrait vous dire où se situe le chemin relatif.

DirectoryInfo di = new DirectoryInfo(Path.Combine(path, "Scorecards")); 
Console.WriteLine("Directory defined as: {0}", di.FullName); 
0

Ce problème a été résolu - il apparaît un autre codeur modifié mon post-affichage du code, retour à l'appel de chemin de retour vers relatif. Après un thrashing complet, nous sommes retournés au code de base.

toujours pas pourquoi le code agirait différent, mais je ferme cette question ...

Merci!