2017-01-18 3 views
0

Я создал программу, где люди могут хранить документы на сетевом диске. Чтобы просмотреть или открыть данные, я использую Data Grid, где люди могут дважды щелкнуть по данным и открыть ее с помощью стандартной программы, выбранной в Windows. Но это не работает. Он работает только тогда, когда документы хранятся локально на машинах, а не на сетевом диске.Как скрыть пробелы при открытии документов

List<ZeichnungInDB> selectedItemsList = dataOutOfDb.SelectedItems.Cast<ZeichnungInDB>().ToList(); 
if(selectedItemsList.Count > 0) 
{ 
    Process.Start(autovuePath[0], @"\\192.168.100.4\\DMS\\Daten\\" + selectedItemsList[0].Dateiname); 
    //Process.Start(@"\\192.168.100.4\\DMS\\Daten\\" + selectedItemsList[0].Dateiname); 
} 

Программа вылетает из строя, когда я пытаюсь открыть документы со стандартной программой и когда в имени есть пробелы. Если я использую AutoVue, я могу открыть данные без пробелов, но когда есть какие-либо белые пробелы, это говорит о том, что данные не могут быть найдены.

Я проверил правила пользователя для сетевого диска, и у меня не было такого сбоя.

У кого-нибудь есть решение для моей проблемы, или я должен просто пойти с простой идеей о том, чтобы не принимать никаких белых пробелов в имени и как я могу решить проблему, чтобы я мог открыть документы со стандартным программа для разных типов?

+1

Я в замешательстве, почему пробел капитализируется на всем протяжении вопроса? – Amy

ответ

1

Здесь вы задаете несколько вопросов, поэтому давайте попробуем ответить на них по одному.

Работает только в том случае, если документы хранятся локально на машинах, а не на сетевом диске.

Вы пытались открыть командную строку вне приложения, чтобы узнать, можете ли вы открыть файл из сети таким образом? Удостоверьтесь, что это работает сначала, прежде чем читать дальше. Откройте командную строку и сделайте это сейчас.

Process.Start(autovuePath[0], @"\\192.168.100.4\\DMS\\Daten\\" + selectedItemsList[0].Dateiname); 

Кроме того, я бы изменил это на что-то еще.

var directoryPath = @"\\192.168.100.4\DMS\Daten\"; // I removed the extra slashes. Might have been causing a problem. 
var fileName = selectedItemsList[0].Dateiname; 
var fullPath = Path.Combine(directoryPath, fileName); 
Process.Start(autovuePath[0], fullPath); 

Кроме того, это «вид» не «вю» и нет никаких причин, чтобы заработать «белое пространство». :)

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