### Godot version

4.0.beta10

### System information

Windows 10, 64bit

### Issue description

The title says it all.
Opened in compression mode, whether read or write and whether the file already exists or not, `get_path` contains an empty string. This is also the case in C#.
However, if the file is opened without compression, get_path contains the absolute file path to the file as expected.
It doesn't matter whether an internal res:// path or an external system path is used.

### Steps to reproduce

```
var file = FileAccess.open_compressed("res://file.txt", FileAccess.WRITE")
prints("get_path():", file.get_path())
```
output: `get_path():`

```
var file = FileAccess.open("res://file.txt", FileAccess.WRITE)
prints("get_path():", file.get_path())
```
output: `get_path(): res://file.txt`

 
_or under C#:_
```
using var file = FileAccess.OpenCompressed("res://test.txt", FileAccess.ModeFlags.Write);
GD.PrintS("GetPath():", file.GetPath());
```
output: `GetPath():`

### Minimal reproduction project

N/A
f->store_32(write_max); 
		uint32_t bc = (write_max / block_size) + 1;
		for (uint32_t i = 0; i < bc; i++) {
			f->store_32(0); 
		}
		Vector<int> block_sizes;
		for (uint32_t i = 0; i < bc; i++) {
			uint32_t bl = i == (bc - 1) ? write_max % block_size : block_size;
			uint8_t *bp = &write_ptr[i * block_size];
			Vector<uint8_t> cblock;
			cblock.resize(Compression::get_max_compressed_buffer_size(bl, cmode));
			int s = Compression::compress(cblock.ptrw(), bp, bl, cmode);
			f->store_buffer(cblock.ptr(), s);
			block_sizes.push_back(s);
		}
		f->seek(16); 
		for (uint32_t i = 0; i < bc; i++) {
			f->store_32(block_sizes[i]);
		}
		f->seek_end();
		f->store_buffer((const uint8_t *)mgc.get_data(), mgc.length()); 
		buffer.clear();
	} else {
		comp_buffer.clear();
		buffer.clear();
		read_blocks.clear();
	}
	f.unref();
}
bool FileAccessCompressed::is_open() const {