Resource.Load returning Null

I am trying to get an Sprite using Resource.Load but it keep returning null… idk if i am using it correctly here is the code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public class GetSprite : MonoBehaviour {

    SpriteRenderer sr;

	// Use this for initialization
	void Start () {
        sr = GetComponent<SpriteRenderer>();
        sr.sprite = Resources.Load<Sprite>("Sprite/Char_Join");

        Debug.Log(Resources.Load<Sprite>("Sprite/Char_Join"));
	}
	
	// Update is called once per frame
	void Update () {
		
	}
}

As you can see in the image below, the Sprite image is in Assets/Sprite, also i created an GameObject with SpriteRenderer Component added and attached the Script above on it.

I used the following code aswell but it’s keeps returning null:

sr.Sprite = (Sprite) Resources.Load("Sprite/Char_Join",typeof(Sprite)) as Sprite;

the version of unity is unity 2017.3

Your Sprite folder must be inside a folder called Resources within Assets