Неверен синтаксис имени файла, имени каталога или метки тома. (Исключение из HRESULT: 0x8007007B)

#c# #winrt-xaml

#c# #winrt-xaml

Вопрос:

Я получаю эту ошибку, когда код ищет путь, я не понимаю, почему это произошло, я думаю, что я все делаю правильно.

Код:

  string newUri = ImageGalleryUri.Replace("ms-appdatalocal/", "");  //Replace this part of the string with a nonspace character.
        newUri = newUri.Replace("/", "\");
        newUri = newUri.Replace(" ", " "); //Replace the ASCII code for space for an actual space. For some reason I'm getting invalid character error with  .
        StorageFolder folder = Windows.Storage.ApplicationData.Current.LocalFolder;
        StorageFile storageFile = await folder.GetFileAsync(newUri);
        DataPackage dp = new DataPackage();    //Create the DataPackage containing the clipboard content.
        dp.SetBitmap(RandomAccessStreamReference.CreateFromFile(storageFile));
        Clipboard.SetContent(dp);
        await successDialog.ShowAsync();
  

Ошибка находится в этой строке: newUri = ms-appdata:localBooksAssetsRecursos para el docenteMatematicas9Esp 1 0Geometria_Page_04.png

 StorageFile storageFile = await folder.GetFileAsync(newUri);
  

Комментарии:

1. Какое значение newUri ?

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

3. Я редактирую вопрос со строкой ошибки.

4. Значение переменной: ms-appdata:\local\ Books\Assets\Recursos para el docente\Matematicas\9\ Esp\1 \0\Geometria_Page_04.png

Ответ №1:

Может быть, попробуйте это:

 newUri = Uri.EscapeDataString(newUri);
  

Вместо:

 newUri = newUri.Replace(" ", " ");
  

Ответ №2:

  1. Отладка для проверки фактического значения строки.
  2. Windows R, затем скопируйте строку и посмотрите, откроется ли она.
  3. Посмотрите, правильно ли экранированы все косые / обратные черты (я не думаю, что здесь правильно использовать обратную косую черту).
  4. Создайте файл с именем file.txt и попробуй вот это:

    использование Windows.Хранение;

Файл StorageFile = ожидающий файл StorageFile.GetFileFromApplicationUriAsync(«ms-appdata:///local/file.txt «);

  1. Попробуйте заменить аргумент, переданный в функции выше, на вашу строку.