2014-12-07 4 views
0

я создаю экземпляр класса Process и проходящей в пути StartInfo.FileName в MS Paint и в качестве аргумента путь к файлу:процесс не может открыть файл в MSPaint

Process paint = new Process(); 
paint.StartInfo.FileName = @"C:\Windows\System32\mspaint.exe"; 
SchemaPath = @"E:\directory\Alisa\0-01\0-01 (1).jpg"; 
Console.WriteLine(SchemaPath); 
paint.StartInfo.Arguments = SchemaPath; 
paint.Start(); 

Моя проблема заключается в том, что - когда моя имя файла содержит пробелы, mspaint полностью игнорирует файл и выдает ошибку. Например, когда мой файл имеет путь:

E:\directory\Alisa\0-01\0-01abc.jpg 

Все работает, но когда у меня есть файл с путем:

E:\directory\Alisa\0-01\0-01 (1).jpg 

Paint открывает, но бросает сообщение:

E:\directory\Alisa\0-01\0-01.png was not found. 

Кто-нибудь знает как справиться с этим?

+2

Enquote тропинки. – AgentFire

+0

@AgentFire извините, я просто не понял, что вы имели в виду, пока я не прочитал ответ kennyzx. – Dess

ответ

1

Try ан-квотирование путь как

paint.StartInfo.Arguments = string.Format("\"{0}\"", SchemaPath); 
+0

Да, это работает, спасибо! – Dess

+0

@ Неплохо. – AgentFire

+0

@AgentFire вы заслуживаете того;) – kennyzx

0
fname.Replace(@" ", ""); 

с использованием описанного выше метода вы можете заменить пространство перед обработкой

  Process paint = new Process(); 
      string fname = @"C:\ Windows\System32\mspaint.exe"; 
      string k = fname.Replace(@" ", ""); 
      paint.StartInfo.FileName =k; 
      Console.WriteLine(SchemaPath); 
      paint.StartInfo.Arguments = SchemaPath; 
      paint.Start(); 
+0

ee, что он дает мне, когда у меня есть файл с пробелами? Paint все еще не может найти файл, за исключением того, что на этот раз у него просто неправильный путь ... – Dess

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