로컬 저장소에서 경로가 지정된 파일을 바이트 배열로 변환 하시겠습니까?

오버플로 스택

다음 컬렉션에는 로컬 저장소의 이미지 경로가 포함되어 있습니다.

public ObservableCollection<string> Paths;

이러한 파일 경로는 사용자가 선택하고 Xamarin Android Player에서 다음과 같이 나타납니다.

/storage/emulated/0/Download/img1.jpg
/storage/emulated/0/Download/img2.jpg

이제 문제는 다음과 같습니다. 선택한 이미지 (경로에 따라)를 서버에 업로드하기 위해 바이트 배열로 변환하고 싶습니다. WPF / ASP.Net에서는 다음 코드로 쉽게 수행 할 수 있습니다.

byte[] Convert = File.ReadAllBytes("somepath...");

그러나 Xamarin.Forms에서 사용할 수있는 것은 없습니다.

Xamarin.Forms에서 로컬 저장소의 실제 경로를 기반으로 이미지를 바이트 배열로 변환하려면 어떤 함수를 사용해야합니까?

----------------------------------------- ----------------------

최신 정보

@asp_net 솔루션 구현 시도 :

내 PCL 프로젝트에서 다음 두 파일을 추가했습니다.

public interface IFileSystem
{
    byte[] ReadAllByteS(string path);
}

public static class FileUtility
{
    public static IFileSystem FileSystem { get; set; }

    public static void SetUp(IFileSystem fs)
    {
        FileSystem = fs;
    }
}

Android에서는 다음 파일을 추가했습니다.

class SharedFileSytem : IFileSystem
{
    public byte[] ReadAllByteS(string path)
    {
        return File.ReadAllBytes(path);
    }
}

그리고 내가 좀 부분을 등록 / 초기화에 잃었어요 - 내가 추가하는 확신 내가 필요 해요 뭔가를 내에서 MainActivity.cs의 파일을.

base.OnCreate(bundle);
Xamarin.Forms.Forms.Init(this, bundle);
//?
LoadApplication(new App());

현재 PCL 코드에서 다음 코드를 실행하려고 할 때

FileUtility.FileSystem.ReadAllByteS(somepath);

다음과 같은 오류 메시지가 나타납니다.

"object reference not set to an instance of an object"
asp_net

명확히하기 위해 : System.IO는 사용하는 것처럼 보이는 Portable Class Libraries에서 사용할 수 없습니다. 그러나 물론 "Xamarin.Forms"에서 사용할 수 있습니다.

옵션 :

  1. PCL 대신 공유 프로젝트를 사용하십시오.
  2. PCL에서 플랫폼 별 코드를 호출합니다.

PCL 내에서 인터페이스를 정의하십시오.

public interface IFileSystem
{
    byte[] ReadAllByteS(string path);
}

각 플랫폼 (또는이 경우 모든 플랫폼에 대한 공유 프로젝트 내에서)에이를 구현합니다.

// Could also be "IosFileSystem" or "SharedFileSytem"
public class DroidFileSystem : IFileSystem
{
    public byte[] ReadAllbytes(string path)
    {
        return File.ReadAllBytes(path);
    }
}

앱이 시작될 때 구현을 등록합니다 (이를 지원하는 라이브러리 가 있습니다).

public static class Utils
{
    public IFileSystem FileSystem { get; set; }

    public static void SetUp(IFileSystem fs)
    {
        FileSystem = fs;
    }
}

( UtilsPCL에 있지만 SetUp 메서드가 AppDelegate 또는 Main Activity에서 호출됩니다.)

사용해:

Utils.FileSystem.ReadAllBytes(...)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

바이너리 파일을 파이썬에서 직접 정수 배열로 변환 하시겠습니까?

분류에서Dev

Eclipse의 Bitbucket에서 로컬 git 저장소로 변경 사항을 업데이트 하시겠습니까?

분류에서Dev

패치 파일에 저장된 경로 / 파일 이름을 완전히 무시하고 지정된 파일에 패치를 적용 하시겠습니까?

분류에서Dev

PHP로 이미지 파일을 저장 하시겠습니까?

분류에서Dev

UiWebView에서 로컬 자바 스크립트 파일로 원격 HTML을 재정의 하시겠습니까?

분류에서Dev

형식이 지정된 이메일 (HTML)을 일반 텍스트로 변환 하시겠습니까?

분류에서Dev

원격 시스템에서 생성 된 로컬 시스템에 파일을 저장 하시겠습니까?

분류에서Dev

Github 저장소의 디렉토리 이름을 로컬 Linux Git에서 직접 원격으로 변경 하시겠습니까?

분류에서Dev

정렬을 Dijkstra 단일 소스 경로로 변환 하시겠습니까?

분류에서Dev

정렬을 Dijkstra 단일 소스 경로로 변환 하시겠습니까?

분류에서Dev

바이너리 파일에서 읽고 double로 변환 하시겠습니까?

분류에서Dev

자바를 사용하여 로컬 복제 Git 저장소에서 수정 된 파일을 가져 오기

분류에서Dev

마지막`n` 커밋에서 특정 파일의 모든 변경 사항을 새로 생성 된 형제 분기로 이동 하시겠습니까?

분류에서Dev

파일을 바이트 배열로 변환, Access-DB에 저장, DB에서 읽기 및 파일 생성

분류에서Dev

크기를 유지하면서 int 배열을 바이트 배열로 변환

분류에서Dev

흑백 배열을 파이썬의 이미지로 변환 하시겠습니까?

분류에서Dev

끝에 파일 이름을 유지하면서 파일 경로의 중간을 바꾸시겠습니까?

분류에서Dev

Blob으로 파일 저장소를 바이트 배열로 변환

분류에서Dev

특정 디렉토리에서 파일 이름을 점진적으로 변경 하시겠습니까?

분류에서Dev

로컬 저장소에 이미지 파일을 저장하고 파일 경로에서 이미지 검색 HTML Cordova 앱

분류에서Dev

str을 배열에서 바이트로 변환하고 CSV로 저장 (Python에서)

분류에서Dev

Javascript에서 문자열을 배열로 변환 하시겠습니까?

분류에서Dev

PHP에서 JSON 문자열을 배열로 변환 하시겠습니까?

분류에서Dev

로컬 git 저장소 및 원격에서 이름이 변경된 파일에 이제 이전 파일과 새 파일이 모두 있습니다.

분류에서Dev

Android 기기에서 서버 소켓으로 해시 된 바이트 배열을 전송하고 저장

분류에서Dev

string 형 배열에서 명명 된 값으로 변환 하시겠습니까?

분류에서Dev

먼저 요소를 int로 변환하지 않고 파이썬에서 바이트 배열 키를 회전하는 방법은 무엇입니까?

분류에서Dev

Git-여러 저장소에서 파일이 마지막으로 수정 된 시간을 찾으십니까?

분류에서Dev

바이트 배열을 numpy 배열로 변환하는 가장 빠른 방법

Related 관련 기사

  1. 1

    바이너리 파일을 파이썬에서 직접 정수 배열로 변환 하시겠습니까?

  2. 2

    Eclipse의 Bitbucket에서 로컬 git 저장소로 변경 사항을 업데이트 하시겠습니까?

  3. 3

    패치 파일에 저장된 경로 / 파일 이름을 완전히 무시하고 지정된 파일에 패치를 적용 하시겠습니까?

  4. 4

    PHP로 이미지 파일을 저장 하시겠습니까?

  5. 5

    UiWebView에서 로컬 자바 스크립트 파일로 원격 HTML을 재정의 하시겠습니까?

  6. 6

    형식이 지정된 이메일 (HTML)을 일반 텍스트로 변환 하시겠습니까?

  7. 7

    원격 시스템에서 생성 된 로컬 시스템에 파일을 저장 하시겠습니까?

  8. 8

    Github 저장소의 디렉토리 이름을 로컬 Linux Git에서 직접 원격으로 변경 하시겠습니까?

  9. 9

    정렬을 Dijkstra 단일 소스 경로로 변환 하시겠습니까?

  10. 10

    정렬을 Dijkstra 단일 소스 경로로 변환 하시겠습니까?

  11. 11

    바이너리 파일에서 읽고 double로 변환 하시겠습니까?

  12. 12

    자바를 사용하여 로컬 복제 Git 저장소에서 수정 된 파일을 가져 오기

  13. 13

    마지막`n` 커밋에서 특정 파일의 모든 변경 사항을 새로 생성 된 형제 분기로 이동 하시겠습니까?

  14. 14

    파일을 바이트 배열로 변환, Access-DB에 저장, DB에서 읽기 및 파일 생성

  15. 15

    크기를 유지하면서 int 배열을 바이트 배열로 변환

  16. 16

    흑백 배열을 파이썬의 이미지로 변환 하시겠습니까?

  17. 17

    끝에 파일 이름을 유지하면서 파일 경로의 중간을 바꾸시겠습니까?

  18. 18

    Blob으로 파일 저장소를 바이트 배열로 변환

  19. 19

    특정 디렉토리에서 파일 이름을 점진적으로 변경 하시겠습니까?

  20. 20

    로컬 저장소에 이미지 파일을 저장하고 파일 경로에서 이미지 검색 HTML Cordova 앱

  21. 21

    str을 배열에서 바이트로 변환하고 CSV로 저장 (Python에서)

  22. 22

    Javascript에서 문자열을 배열로 변환 하시겠습니까?

  23. 23

    PHP에서 JSON 문자열을 배열로 변환 하시겠습니까?

  24. 24

    로컬 git 저장소 및 원격에서 이름이 변경된 파일에 이제 이전 파일과 새 파일이 모두 있습니다.

  25. 25

    Android 기기에서 서버 소켓으로 해시 된 바이트 배열을 전송하고 저장

  26. 26

    string 형 배열에서 명명 된 값으로 변환 하시겠습니까?

  27. 27

    먼저 요소를 int로 변환하지 않고 파이썬에서 바이트 배열 키를 회전하는 방법은 무엇입니까?

  28. 28

    Git-여러 저장소에서 파일이 마지막으로 수정 된 시간을 찾으십니까?

  29. 29

    바이트 배열을 numpy 배열로 변환하는 가장 빠른 방법

뜨겁다태그

보관