2015-11-16 1 views
3

У меня есть эта функция в некоторой Class1:Почему этот недопустимый путь к файлу с // работает?

public void function1(String path){ 
    this.excel = new Application(); 
    this.wbooks = excel.Workbooks; 
    this.wb = wbooks.Open(path); 
    String rootPath = wb.Path+"//..//..//"; 
    String nPath = String.Format("{0}//Loads//{1}//{2}",rootPath,name1,name2); 
    String outputDir = String.Format("{0}//Input//{1}//{2}", rootPath, name1, name2); 
    String erroDir = String.Format("{0}//Erro//{1}//{2}", rootPath, name1, name2); 
    for(int i = 0; i < size; i++){ 
    String[] array2 = File.ReadAllLines(String.Format("{0}//{1}_{2}.txt", nPath, name1, i.ToString())); 
    //code 
    Directory.CreateDirectory(erroDir); 
    File.WriteAllLines(String.Format("{0}//erro_{1}_{2}.txt", erroDir, name1, i.ToString()), array); 
    Directory.CreateDirectory(outputDir); 
    File.WriteAllLines(String.Format("{0}//output_{1}.txt", outputDir, name2), array); 
    } 
} 

Эта функция из класса и вызывается, как это в главной функции:

String path = "C:\\Users\\myUsername\\Desktop\\myFolder\\"; 
Class1 temp = new Class1(); 
temp.function1(path); 

Почему пути сделаны в функции работы • Нельзя создать путь «\\» вместо «//».

ответ

2

Почему пути, выполняемые в функционирующей функции, должны быть сделаны «\» вместо «//».

Да, они должны. Но Windows «умна». Он пытается определить, что вы на самом деле хотели спросить, в этом случае, если путь к файлу начинается с C:, например, он «знает», это локальный путь к файлу и, таким образом, он пытается интерпретировать его как таковой.

Обратите внимание, что не все программы являются умными. Некоторые инструменты сборки .NET, например (не сам C#), известны некоторыми ошибками при работе с такими путями файлов.

+0

Я думал, что это было странно, потому что, когда я делал что-то подобное в другой программе (но в основной функции, а не в функции класса), он не работал, даже «\\ .. \\» работал, мне приходилось используйте Directory.GetParent.toString(); – kadzu

Смежные вопросы