問題タブ [long-filenames]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Windows dir の「設計による」問題を回避するには?
dir /b は素敵なファイルのみのリストを生成します
dir /x は、詳細なリスト (日付、時刻、サイズ、ロングネーム、ショートネーム) を生成します
ただし、2 つを組み合わせると (つまり、dir /b /x)、/x スイッチは無視されます。このページのこの動作は仕様によるものです。
したがって、ファイルの短い名前だけを含む単純なリストを要求した場合、Redmond (Microsoft) は、それを提供することは天国の規則に反すると言います。
この「設計上の」問題をどのように回避できますか?
よろしくお願いします
psこれは、この質問で説明されていることを達成するのに役立ちます。5 人の親切な友人が回答を投稿してくれて、とても感謝しています。
c# - C#: Directory.GetFiles を使用して固定長のファイルを取得する
ディレクトリ「C:\temp」には、「GZ96A7005.tif」と「GZ96A7005001.tif」という名前の 2 つのファイルがあります。それらは同じ拡張子で長さが異なります。今、私は以下のコードを実行します:
「resultFileNames」は、「c:\temp\GZ96A7005.tif」と「c:\temp\GZ96A7005001.tif」の 2 つのアイテムを返します。ただし、ウィンドウ検索は正常に機能します。これが理由であり、どのように私は欲しいですか?
r - 8dot3 以外のディレクトリ パスの短い名前を長い名前に拡張する
R
onではWindows
、tempdir()
の短縮名を含むパスを返しますnon 8dot3 directory names
。
それらを長い名前に拡張するにはどうすればよいですか?
純粋なR
コードを使用する回答は有利ですが、経由で使用されるよく知られたシェル コマンドを使用する回答system()
は、バックアップとしては問題ありません。
c# - string []配列に文字列を追加するにはどうすればよいですか?.Add関数はありません
FI.Name
を文字列に変換してから、配列に追加したいと思います。これどうやってするの?
windows - Perlから長いWindowsパスを作成して使用するにはどうすればよいですか?
私は、Windowsで恐ろしく長いパスを作成するビルドプロセスの一部を持っています。それは私のせいではありません。いくつかのディレクトリの深さであり、どのディレクトリ名も異常に長くはありません。それらはちょうど長く、それを超えるのに十分な数ですMAX_PATH
(260文字)。これらの名前にはASCII以外のものは使用していません。
大きな問題は、ターゲット中にModule :: Buildの内部で爆発が発生するdist
ことですが、同じディレクトリを作成するため、ビルドシステムは重要ではないと思います。
これらの長すぎるディレクトリの1つを作成すると、File::Path
失敗します。
同様に、絶対パスが通過すると、各ディレクトリレベルを手動で構築することは失敗しますMAX_PATH
。
これは新しいことではなく、Perlのせいでもありません。マイクロソフトは、ファイル、パス、名前空間の命名にそれを文書化しています。彼らの修正は\\?\
、Unicodeファイル名APIにアクセスするためにパスの前にを追加することを提案しています。ただし、それでも失敗するため、Perlスクリプトの完全な修正ではないようです。
これはmake_path
、引数を引き離してから、一度に1レベルずつディレクトリを通過するため、\\?\
内にある最上位レベルにのみ適用されるためである可能性がありますMAX_PATH
。
私はActiveStateにバグレポートを掘り起こし、Unicodeファイル名を取得するために修正する必要がある他の何かがあることを示唆しています。JanDuboisは、Re:Windows 2K/XPの「長い」ファイル名についてもう少し詳しく説明しています。それが適用されるかどうかわからない(そして非常に古い)。perlrunは、これがスイッチの仕事であると述べていますが-C
、明らかにその部分は放棄されました。perl RTキューには、より最近のバグ60888があります。Win32:ファイル名で完全なUnicodeをサポートします(ワイドシステムコールを使用)。
宮川氏は、長いパスについて特に言及せずに、 Unicodeファイル名の問題とWin32API::Fileについて言及しています。ただし、Win32API :: File CPANフォーラムのエントリは、恐れのみを示しているようです。これは怒りにつながり、憎しみにつながります。Perlmonksの投稿に例があります。WindowsでUnicode(UTF16-LE)ファイル名のファイルを統計する方法は?。それWin32::CreateDirectory
が答えのようです。次にWindowsマシンの隣に着いたときに、それを試してみます。
次に、ロングパスパスを作成できると仮定します。今、私はそれを処理するために、Module :: Build、そして多分他のことを教えなければなりません。それが缶に言うことをするならば、それはmonkeypatchesですぐに簡単かもしれませんWin32::GetANSIPathName()
。
c# - SaveFileDialog のデフォルトの FileName に長い文字列 (>260) を設定するには?
私は SaveFileDialog を使用しており、FileName に長い文字列 (longFileName) を設定する必要があります。文字列 longFileName は実行時に認識されます。
私が設定した場合
それから私は得るSystem.IO.PathTooLongException
。
どうすればいいですか?
java - JavaでWindowsファイル名を解除するにはどうすればよいですか?
Javaから、File.createTempFile()を使用して指定された場所に実行可能ファイルを抽出しています。実行可能ファイルを実行しようとすると、出力の最初の行を読み取ろうとするとプログラムがハングします。
別のプログラムから同じ抽出実行可能ファイルを実行しようとすると、ディレクトリをC:\ Documents and Settings \ username \ Local Settings \ Temp\prog.exeとして指定すると機能することがわかりました。しかし、ディレクトリをC:\ DOCUME〜1 \ USERNA〜1 \ LOCALS〜1 \ Temp \ prog.exeと指定すると、ハングします。
プログラムでチルダファイル名を解除して、機能するディレクトリ名を指定できるようにする方法はありますか?
(そして、私は常に言語とAPIの設計の問題に対処するのが好きなので、Java File.createTempFile()とjava.io.tmpdirが壊れたファイル名を評価しなければならない理由はありますか?)
c++ - C ++ WinAPI:長いファイルパス/名前の処理
Windowsアプリケーションでより長いファイルパスを処理することを検討しています。
現在、ユーザーがファイルの絶対パスを入力できるテキストボックス(編集ボックス)があります。次に、その型指定されたファイルパスを、を使用してGetWindowText
、次のように宣言された文字列に読み込みます。TCHAR FilePath[MAX_PATH];
MAX_PATH
明らかに、ここで私は260文字に制限する定数に依存しています。したがって、より長いファイル/パス名を処理するには、TCHAR配列を次のように拡張できますTCHAR FilePath[32767];
。
それとももっと良い方法はありますか?可変長配列を使用できますか?(TCHAR FilePath[];
これはC ++でも可能ですか?-申し訳ありませんが、これはかなり新しいです)。
よろしくお願いします!
これが私が上で述べたものの全体のコードスニペットです:
java-me - j2meアプリケーションの画像ファイルの最大長は?
ワイヤレス接続を介して画像を受信する j2me でアプリケーションを構築しています。保存するときのファイル名の最大長を知りたいです。私の主な動機は、ファイル名を介して画像に関する情報を保存することです。
windows - Windows: 存在しないドライブへのショートカットを作成すると、長いフォルダーとファイル名が許可されない
PowerShell を使用して、マップされたドライブ上のファイルを対象とするショートカットを作成しようとしています。ただし、このスクリプトは、ドライブが実際にマップされる前に実行されます。コードは次のとおりです。
「X」ドライブはまだ存在しないため、ショートカットの「ターゲット」フィールドは次のようになります。
Windows XP: X:\Folder_W\This_is_.txt
Windows 7: X:\Folder_With_Spaces\This_is_a_long_filename.txt
どちらのオペレーティング システムも、周囲の二重引用符を削除し、スペースをアンダースコアに変換します。Windows XP では、フォルダとファイル名も 8 文字に切り捨てられます。
この問題を回避する方法はありますか?