2015-09-22 5 views
0

Таким образом, я создаю приложение для магазина Windows, которое вы выбираете с помощью одной кнопки, с помощью подборщика файлов, а затем с другой кнопкой обрабатывает этот файл, но им не удается получить выбранный файл для обработки.
Поскольку Picker устанавливает один из моих текстовых блоков на пути к файлу, который будет отображаться для пользователя я попытался с помощью:
StorageFile file = await StorageFile.GetFileFromPathAsync(fullFilePath.Text);
Но из-за ограничений Windows RT Я просто получить доступ к нему отказано в большинстве мест
Любые другие предложения о том, что попробовать?Как получить доступ к StorageFile с помощью другого метода

Первый щелчок кнопки:

private async Task getFile() 
     { 
      FileOpenPicker openPicker = new FileOpenPicker(); 
      openPicker.ViewMode = PickerViewMode.List; 
      openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; 
      openPicker.FileTypeFilter.Add(".txt"); 

      StorageFile file = await openPicker.PickSingleFileAsync(); 
      if (file != null) 
      { 
       fullFilePath.Text = file.Path; 
      } 
      else 
      { 
       updateStatus("File Selection cancelled."); 
      } 
     } 

Вторая кнопка запуска этого, но нужно использовать файл из выше

private async Task processFile() 
{ 
    ... 
    string content = await FileIO.ReadTextAsync(file); 
    ... 
} 
+0

возможным дублировать [файл вызова с другого метода] (http://stackoverflow.com/questions/16797452/call-file-from-another-meth od) –

+0

@chue ах, спасибо за то, что я прочитал – Toxicable

+0

. Замечание: Как правило, вам следует избегать программирования с путями файлов в приложениях Universal Windows - основное (только?) использование для них - передать Win32 функции, которые принимают пути к файлам или, возможно, отображаться пользователю. Вы никогда не должны сохранять путь к файлу в любом месте и ожидать, что он снова будет работать (* даже путь к вашим собственным данным *). –

ответ

1

Сделать StorageFile поле в классе:

class MyClass 
{ 
    StorageFile m_pickedFile; 

    async Task GetFile() 
    { 
    // Setup the picker... 
    m_pickedFile = await openPicker.PickSingleFileAsync(); 

    // Show the path to the user... 
    } 

    async Task ProcessFile() 
    { 
    if (m_pickedFile != null) 
    { 
     // now use m_pickedFile... 
    } 
    } 
} 

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

  • Нет связанных вопросов^_^