[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/02/21(Mon) 14:50
投稿者名:こう
URL :
タイトル:
dir()関数の最大取得ファイル名文字数について
恐れ入ります。

dir()関数を使ってフォルダ内のEXCELファイル名を読み込む処理をしています。

いいいいいいいいいあいいいいいいいいいあいいいいいいあああああああああああああああああああああああ
あああああああああああああああああああああああああああああああああああああああああああああああああ
あああああああああああああああああああああああああああああああああああああああああああああああああ
あああああああああああああああああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああ.xls

そのフォルダ内に上記の様に文字列の多いファイル名が存在すると、読み込めずに落ちます。

エラーナンバー 5
エラーメッセージは プロシージャの呼び出し、または引数が不正ですと出ます。


落ちずにファイル名を取得する方法はありますでしょうか?
又、dir()関数以外にファイル名を読み込む方法はありますでしょうか?

フォルダ内はファイルの有無、ファイル数等はわからない状態です。
(フォルダパスのみ持っています。)

ご教授下さい。
宜しくお願い致します。

投稿時間:2005/02/21(Mon) 15:08
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: dir()関数の最大取得ファイル名文字数について
ファイル名は255文字以内に制限されています。
ドライブ名+フォルダ名+ファイル名が255文字以上になっていませんか?

(以下ヘルプより抜粋)
Windows 95 では最大 250文字 を使用してファイル名を付けることが可能です。
しかしながら、Windows 95 での最大のパス長は 259文字 です。
また、たとえ最大パス長が 259文字 であると言っても、ドライブとフォルダを表す文字が
9文字以下 の時に 250文字以上 のファイル名を付けることはできません。





ファイル名を変更するか 短いファイル名の形式に変換して読み込んで見て下さい。

投稿時間:2005/02/21(Mon) 15:34
投稿者名:こう
URL :
タイトル:
Re^2: dir()関数の最大取得ファイル名文字数について
ご返事有難う御座いました。

ファイル名を少なくすると落ちませんが、落ちる前に255文字以上か
判別する方法はありますでしょうか?

投稿時間:2005/02/21(Mon) 15:48
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: dir()関数の最大取得ファイル名文字数について
ここのファイル操作関係や文字列処理関係やFileSystemObject オブジェクト関係もご覧下さい。

Private Sub Command1_Click()
    Dim FileName As String
    FileName = "C:\Documents and Settings\defaultUser\My Documents\test.txt"
    Debug.Print Len(FileName)
End Sub

投稿時間:2005/02/21(Mon) 16:24
投稿者名:こう
URL :
タイトル:
Re^4: dir()関数の最大取得ファイル名文字数について
ご返事有難う御座いました。

ファイルオブジェクトで取得できました。

    Dim objFile     As New FileSystemObject
    Dim objData     As Object
    Dim objFolder   As Folder       'フォルダオブジェクト

    Set objFolder = objFile.GetFolder(フォルダパス)

    'ファイル数分繰り返し
    For Each objData In objFolder.Files


        取得処理・・・

  next

これでフォルダ内のファイル名が255文字以上でも取得出来ました。
有難う御座いました。
又何かあれば、 宜しくお願い致します。
失礼致します。