電子メールからPDFをダウンロードする:「/」は置き換えられます

1
2022.01.13

まず、スーパーユーザーを使うのは初めてです。 SOはこれを尋ねるのに適切な場所ではないと確信しています。これは、電子メールの場合のようにMacだけに限定されないので、ここで尋ねることにしました。これを移行する必要がある場合は、お知らせください。

ファイルを電子メールで送信すると、すべてのスラッシュが置き換えられていることに気付きました。私はGmailの上だし、1/2.pdfという名前のファイルを添付する場合、Gmailが私を示し1:2.pdfenter image description here

テストのために自分自身に電子メールを送信し、自分用にpdfをダウンロードした後、次のようにダウンロードされました。enter image description hereなぜこれが起こっているのか誰かが知っていますか?

回答
2
2022.01.13

これらは2つのわずかに異なる問題ですが、どちらも実際には電子メールに関連していません。


ファイルを電子メールで送信すると、すべてのスラッシュが置き換えられていることに気付きました。私はGmailの上だし、1/2.pdfという名前のファイルを添付する場合、Gmailが私を示し1:2.pdfenter image description here

それはmacOS(OS X)の癖です。

通常、スラッシュ/OS X(およびその他のオペレーティングシステム)のパス区切り文字であるため、ファイル名に使用することはできません。文字通り1/2.pdfという名前のファイルを作成しようとした場合、それは実際には「フォルダー1内のファイル2.pdf 」として解釈されます。これは、Linux、Windows、Android、およびその他のほぼすべてに当てはまります。

しかし、元のMacOS(OS Xより前)は、スラッシュの代わりに:をパス区切り文字として使用していました。これは当時の名前で許可されていました。これは、古いHFS +形式のディスク(スラッシュが含まれるファイル名が含まれている可能性があります)および古いツールキットを使用して構築されたプログラムに引き続き影響します。

そのため、Finderでは名前に/を使用できますが、内部では、macOSのUnixベースのコアにクロスオーバーするときに:に変換されます。 (そして、HFS +ディスクに行く場合は再び/に変換されます…)

例えば、ターミナル内lsコマンドを使用して、あなたのファイルが(/Users/Ryan/1/2.pdfではなく)実際に/Users/Ryan/1:2.pdfであることがわかります。また、さまざまなアプリで、作成方法に応じて1:2.pdfまたは1/2.pdfと同じファイルが表示される場合があります。

関連記事:


テストのために自分自身に電子メールを送信し、自分用にpdfをダウンロードした後、次のようにダウンロードされました。enter image description here

これは、Windowsのブラウザによって意図的に行われています。これは、Windowsのファイル名に/:も許可されていないためです。どちらも、さまざまなものの区切り文字として機能します。

Windowsでは、スラッシュ/は、通常の円記号\と一緒に代替パス区切り文字として使用されます。たとえば、パスC:\Users\RyanC:/Users/RyanまたはC:\Users/Ryanと書くことができます。

一方、コロン:は、ドライブ文字インジケーターとしても、代替ストリームセパレーターとしても使用されます(後者は、macOSの「xattrs」や「resourceforks」のようなものです)。

プログラムが実際に1:2.pdfという名前のファイルを作成しようとした場合、Windowsはそれを「ディスク1:上のファイル2.pdf 」として解釈します(はい、Windowsドライブの「文字」は数字でもかまいません)。一方、プログラムがDownloads/1:2.pdfを使用した場合、それは「ディレクトリDownloads 、ファイル名1 、代替ストリーム2.pdf 」として解釈されます。

したがって、Windowsのブラウザは、ファイルをダウンロードするたびに、そのような文字の両方(および、?*>などのいくつかの文字)を置き換える必要があります。

関連している: