Blog

Claude Code Tidak Dapat Melihat Fail Projek: Sebab dan Perkara yang Perlu Dilakukan pada 2026

Markdown

Mengapa Claude Code tidak dapat mencari fail projek: ia dilancarkan dari folder yang salah, fail berada dalam subfolder atau fail itu disenaraikan dalam .gitignore. Cara memberikan akses dengan add-dir, cd dan tetapan.

Baca artikel penuh

Situasi yang biasa berlaku: anda meminta Claude Code membetulkan fail, lalu ia menjawab bahawa fail itu tidak wujud. Atau ia diam-diam mengubah sesuatu yang sama sekali berbeza daripada yang anda maksudkan. Anda membuka folder itu — fail tersebut ada di situ, tepat di tempat yang sepatutnya. Tetapi Claude seolah-olah tidak menyedarinya.

Hampir selalu, hanya ada satu sebab dan tiada apa-apa yang rosak. Claude tidak melihat fail di seluruh komputer. Ia hanya boleh mengakses folder tempat anda melancarkannya. Melancarkan dalam folder bersebelahan atau di bawah akar projek boleh meletakkan fail diperlukan di luar pepohon kerja. Melancarkan dari induk seperti home pula memberikan skop lebih luas; ia tidak menjadikan projek keturunan tidak boleh dicapai. Saya akan menerangkan langkah demi langkah sebab perkara ini berlaku dan cara memberikan Claude akses kepada fail yang diperlukan. Saya memetik arahan dan tetapan terus daripada dokumentasi rasmi Claude Code, yang saya semak pada awal September 2026.

Bahan tambahan tentang konfigurasi alat tersedia dalam dokumentasi Ailoot.

Mengapa Claude Code Tidak Dapat Melihat Sesetengah Fail Projek?

Perkara utama

Claude Code membaca fail bukan daripada keseluruhan pemacu, tetapi hanya daripada folder tempat anda melancarkannya. Folder ini dipanggil direktori kerja. Claude boleh melihat dan membaca semua yang berada di dalamnya serta subfoldernya tanpa bertanya. Semua yang berada di luarnya — dalam folder bersebelahan, satu aras di atas atau pada pemacu lain — tidak boleh diakses sehingga anda memberikan akses sendiri. Jadi, sebab yang paling lazim bagi fail yang “tidak kelihatan” adalah mudah: anda melancarkan Claude dari folder yang berbeza. Mula-mula, semak dengan tepat dari folder mana anda membukanya.

Secara lalai, Claude Code bekerja dengan satu folder: folder tempat anda memasukkan arahan claude dan memulakan sesi. Dokumentasi menyatakan perkara ini dengan jelas.

Secara lalai, Claude mempunyai akses kepada fail dalam folder tempat anda melancarkannya.

— Claude Code Docs, Configure permissions, dokumentasi rasmi

Folder ini ialah direktori kerja Claude. Di dalamnya, Claude membaca sebarang fail tanpa soalan tambahan: mengedit prompt, mencari kod, membaca fail tertentu — semuanya terus berfungsi. Tetapi semua yang berada di luar folder ini tidak boleh diakses secara lalai. Folder bersebelahan, folder satu aras di atas, pemacu lain — Claude tidak akan melihatnya sehingga anda membenarkannya.

Di situlah ketidakpadanan folder kerja boleh memberi kesan. Katakan projek ialah /Users/you/my-shop, tetapi Claude dilancarkan dari /Users/you/other-project, folder bersebelahan. index.html dalam my-shop berada di luar pepohon kerja itu. Melancarkan dari /Users/you ialah kes berbeza: my-shop keturunan dan tidak menjadi tidak boleh dicapai hanya kerana bermula dari home, walaupun konteks dipilih lebih luas daripada dikehendaki. Akses folder juga tidak bermakna setiap fail sudah dibaca.

Seterusnya, saya akan tunjukkan cara menyemak dan membetulkannya: mula-mula kita sahkan folder tempat Claude dilancarkan, kemudian kita berikan akses kepada fail yang diperlukan dengan beberapa cara — daripada arahan sekali sahaja hingga tetapan kekal.

Bagaimanakah Cara Menyemak Folder Tempat Claude Code Dilancarkan?

Perkara utama

Tanya Claude folder mana yang sedang dibukanya, atau minta ia memaparkan direktori semasa menggunakan arahan pwd — arahan ini hanya menyemak dan tidak mengubah apa-apa. Bandingkan lokasi yang dipaparkan dengan lokasi sebenar projek anda. Jika laluannya berbeza, itulah sebabnya: Claude dilancarkan dari folder yang salah. Cara yang lebih boleh dipercayai ialah menutup sesi dan melancarkan semula Claude terus dari folder projek: pergi ke folder itu dalam terminal dan masukkan claude di situ.

Sebelum membetulkan apa-apa, pastikan folder memang puncanya. Perkara ini mudah disemak. Minta Claude dalam sembang menunjukkan direktori semasanya — ia akan menjalankan pwd, yang selamat: arahan itu hanya memaparkan laluan dan tidak menyentuh apa-apa.

pwd

Respons menunjukkan direktori kerja sebenar. Bandingkan dengan laluan projek penuh: /Users/you/other-project ialah saudara /Users/you/my-shop, sementara /Users/you ialah induknya. Kes saudara meletakkan my-shop di luar pepohon kerja; kes induk merangkuminya tetapi tidak memilih projek khusus itu sebagai akar.

Cara paling kemas untuk menyelesaikan ketidakpadanan ini ialah melancarkan Claude terus dari folder projek. Tutup sesi semasa, pergi ke folder yang betul dalam terminal dan lancarkan Claude dari situ:

# Replace this illustrative path with your actual project root.
cd /Users/you/my-shop
claude

Kini my-shop akan menjadi folder kerja dan semua fail projek akan kelihatan. Peraturan yang sama terpakai dalam editor seperti VS Code: buka folder yang mengandungi projek. Bukan folder satu aras di atas dan bukan keseluruhan pemacu. Folder yang anda buka menentukan perkara yang dianggap Claude sebagai direktori kerjanya.

Jika melancarkan semula tidak sesuai — contohnya, anda sudah memberikan konteks kepada Claude dalam sesi ini dan tidak mahu kehilangannya — anda boleh menambah atau menukar folder semasa sesi berlangsung. Dua bahagian seterusnya menerangkan caranya.

Bagaimanakah Cara Menunjukkan kepada Claude Code Fail dalam Folder Bersebelahan?

Perkara utama

Tanpa memulakan semula sesi, tambahkan folder yang diperlukan dengan arahan /add-dir terus dalam sembang: masukkan /add-dir dan laluan folder itu, kemudian failnya akan tersedia sama seperti fail dalam folder utama. Untuk membuka akses sebaik sahaja Claude bermula, tambahkan flag --add-dir bersama laluan pada arahan claude. Jika anda mahu folder dibuka secara automatik setiap kali, tambahkan folder itu di bawah kunci additionalDirectories dalam tetapan. Dalam ketiga-tiga kes, fail dalam folder yang ditambah boleh dibaca tanpa pengesahan berasingan.

Kadangkala projek tidak disimpan dalam satu folder sahaja. Kod berada di satu tempat, imej atau teks dalam folder bersebelahan dan komponen dikongsi di tempat lain yang berdekatan. Melancarkan semula Claude di setiap folder secara bergilir-gilir memang menyusahkan. Lebih baik berikan akses kepada folder yang diperlukan sambil mengekalkan folder utama sebagai direktori kerja.

Cara yang paling mudah ialah melakukannya terus dalam sesi aktif dengan arahan:

/add-dir ../assets

Masukkan /add-dir dan laluan folder itu, lalu Claude akan mendapat akses serta-merta kepada failnya sama seperti fail dalam folder utama. Ia tidak akan meminta kebenaran sekali lagi: folder yang ditambah mengikut peraturan yang sama seperti direktori kerja.

Fail dalam direktori tambahan mengikut peraturan akses yang sama seperti direktori kerja utama: fail dibaca tanpa prompt.

— Claude Code Docs, Configure permissions, dokumentasi rasmi

Jika anda sudah tahu bahawa anda akan bekerja dengan beberapa folder, buka akses sebaik sahaja Claude bermula — gunakan laluan yang sama, tetapi dengan flag:

claude --add-dir ../assets

Jika anda sentiasa memerlukan folder bersebelahan yang sama dalam sesuatu projek, anda tidak perlu menambahnya secara manual setiap kali. Fail tetapan settings.json mempunyai kunci additionalDirectories. Senaraikan laluan di situ dan folder tersebut akan dibuka secara automatik setiap kali Claude bermula:

{
  "permissions": {
    "additionalDirectories": ["../assets", "../shared"]
  }
}

Ada satu pengecualian untuk Windows: anda tidak boleh menambah folder rangkaian menggunakan laluan seperti \\server\shared — Claude tidak menerima laluan sedemikian. Lekapkannya sebagai pemacu berasingan dengan huruf pemacu, kemudian berikan huruf itu menggunakan --add-dir. Folder setempat biasa tidak menghadapi masalah ini.

Bagaimana jika menambah folder bersebelahan tidak mencukupi dan anda perlu beralih sepenuhnya ke folder lain? Ada arahan berasingan untuk itu, seperti yang diterangkan di bawah.

Bagaimanakah Cara Menukar Claude Code ke Folder Lain Semasa Sesi?

Perkara utama

Arahan /cd menukar folder kerja utama tanpa menutup sesi: masukkan /cd dan satu laluan, lalu Claude akan berpindah ke sana dengan sejarah perbualan kekal. Semasa berpindah, ia akan memuatkan fail arahan CLAUDE.md daripada folder baharu dan, jika anda belum pernah bekerja di situ, meminta anda mengesahkan bahawa anda mempercayainya. Perbezaannya dengan /add-dir ialah /add-dir membuka folder bersebelahan di samping folder utama, manakala /cd memindahkan seluruh direktori kerja ke lokasi baharu. Arahan ini tersedia bermula dengan versi 2.1.169.

Kadangkala menambah folder bersebelahan tidak mencukupi — anda perlu menukar folder utama dan beralih ke projek lain tanpa kehilangan konteks yang telah dibina. Gunakan arahan /cd:

/cd ../another-project

Selepas itu, Claude menganggap folder baharu sebagai direktori kerjanya. Anda mengekalkan seluruh sejarah perbualan, tetapi tempat yang digunakan Claude sebagai rujukan untuk fail berubah ke lokasi baharu. Claude juga memuatkan fail arahan CLAUDE.md daripada folder baharu, jika ada — iaitu, menyesuaikan diri dengan peraturan projek baharu.

Satu perkara yang perlu diketahui tentang kepercayaan: jika anda belum pernah bekerja dalam folder ini, Claude akan bertanya sama ada anda mempercayainya apabila anda berpindah ke sana. Ini ialah langkah perlindungan: fail arahan dalam folder yang tidak dikenali mungkin mengandungi apa-apa sahaja, jadi Claude terlebih dahulu memastikan bahawa folder itu projek anda. Sahkan, kemudian teruskan.

Perbezaan antara dua arahan itu mudah. /add-dir mengekalkan folder utama sebagai direktori kerja dan membuka folder bersebelahan sebagai tambahan — berguna apabila bahagian-bahagian projek berada di lokasi yang berasingan. /cd memindahkan seluruh direktori kerja ke lokasi baharu — berguna apabila bertukar ke projek lain. Arahan /cd diperkenalkan dalam versi 2.1.169, jadi jika arahan itu tiada, kemas kini Claude Code. Saya ada panduan berasingan tentang cara mengemas kini Claude Code.

Keupayaan Claude Code melihat fail hanyalah asas. Hasil yang konsisten bukan datang daripada akses fail sahaja. Hasil itu bergantung pada kandungan fail dan cara anda membina konteks di sekeliling projek.

Mengapa Claude Code Tidak Dapat Melihat Fail dalam Subfolder?

Perkara utama

Subfolder berfungsi secara berbeza daripada folder bersebelahan: Claude mempunyai akses kepadanya, tetapi kandungannya tidak terus dimasukkan ke dalam konteks. Claude memuatkan fail arahan dan kandungan subfolder apabila diperlukan, semasa ia mencari di situ. Ia tidak memuatkannya semasa permulaan. Oleh itu, fail dalam subfolder yang tersarang jauh mungkin “tidak kelihatan” sehingga anda memberikan laluannya secara langsung kepada Claude. Penyelesaiannya mudah: berikan laluan tepat fail itu kepada Claude atau minta Claude membacanya terlebih dahulu, lalu fail itu akan muncul.

Penting untuk tidak mengelirukan dua situasi yang berbeza. Folder bersebelahan (di luar projek) langsung tidak boleh diakses sehingga anda menambahkannya. Subfolder dalam projek berbeza: Claude mempunyai akses kepadanya, tetapi kandungannya tidak sentiasa berada dalam fikirannya sejak awal.

Beginilah caranya berfungsi. Apabila Claude bermula, ia memuatkan kandungan pada aras teratas projek. Ia memuatkan fail dalam subfolder apabila diperlukan, semasa pergi ke situ untuk membaca sesuatu. Dokumentasi menerangkan tingkah laku ini bagi fail arahan, dan logik yang sama terpakai secara umum pada konteks.

Claude menemukan fail dalam subfolder direktori kerja. Daripada memuatkannya semasa permulaan, Claude mengambilnya apabila membaca fail dalam subfolder tersebut.

— Claude Code Docs, Manage Claude's memory, dokumentasi rasmi

Dalam bahasa mudah: fail dalam subfolder yang tersarang jauh itu tidak hilang dan boleh diakses sepenuhnya. Claude cuma belum mengingatinya kerana belum melihat di situ — sebab itulah Claude boleh kelihatan seperti “tidak dapat melihat” fail walaupun fail itu ada dan boleh diakses.

Anda boleh membetulkannya dengan satu baris. Berikan laluan fail secara langsung kepada Claude — contohnya, src/components/header.jsx — atau minta Claude membaca fail itu terlebih dahulu. Sebaik sahaja Claude melihatnya, fail itu akan dimasukkan ke dalam konteks dan anda boleh bekerja dengannya seperti biasa. Tidak perlu mengubah sebarang tetapan.

Di manakah Fail Hilang daripada Menu @ dan Apakah Kaitannya dengan .gitignore?

Perkara utama

Apabila anda menaip simbol @, Claude Code memaparkan senarai fail yang boleh dipilih. Secara lalai, senarai ini menyembunyikan apa-apa yang disertakan dalam .gitignore — folder perkhidmatan, fail persekitaran dan output binaan. Jadi, sesuatu fail mungkin berada tepat di tempat yang sepatutnya tetapi tidak muncul dalam menu @. Tetapan respectGitignore mengawal perkara ini: secara lalai, tetapan ini dihidupkan dan menyembunyikan fail tersebut. Tetapkannya kepada false, dan menu itu juga akan memaparkan fail yang disenaraikan dalam .gitignore. Anda sentiasa boleh memasukkan laluan ke fail sedemikian secara manual.

Satu lagi sebab lazim yang membuatkan anda beranggapan Claude telah “kehilangan” fail ialah pemilih fail. Apabila anda menaip @, satu senarai muncul dan memudahkan anda memilih fail tanpa menaip laluan penuhnya. Namun, senarai itu tidak memaparkan semuanya.

Secara lalai, menu @ menyembunyikan fail yang disenaraikan dalam .gitignore. Fail itu menentukan perkara yang tidak patut ditambahkan ke repositori kongsi: folder perkhidmatan, fail yang mengandungi kata laluan dan tetapan persekitaran, serta output binaan yang telah siap. Sebabnya jelas — biasanya anda tidak perlu bekerja dengan fail ini secara manual, jadi fail tersebut hanya akan memenuhi senarai. Namun, kadangkala anda memang memerlukan salah satu fail itu, tetapi ia tiada dalam menu.

Tetapan respectGitignore mengawal perkara ini. Tetapan ini dihidupkan secara lalai, jadi fail daripada .gitignore tidak muncul dalam menu. Jika anda mahu melihatnya, tukar nilainya kepada false:

{
  "respectGitignore": false
}

Anda boleh melakukan perkara yang sama tanpa mengedit fail, menggunakan arahan /config dalam Claude Code. Togol itu dinamakan “Respect .gitignore in file picker.” Nyahpilihnya dan fail tersembunyi akan kembali ke dalam menu.

Satu pengecualian penting: respectGitignore hanya terpakai pada menu @ dan tiada kaitan dengan akses fail. Walaupun fail disembunyikan daripada senarai, anda sentiasa boleh memasukkan laluannya secara manual dan Claude akan membacanya. Menu itu ialah ciri kemudahan; menu itu tidak menentukan sempadan akses.

Apakah yang Perlu Dilakukan Jika Claude Code Tidak Dapat Membaca Fail Tertentu?

Perkara utama

Kadangkala folder sudah betul, tetapi Claude masih enggan membaca satu fail tertentu. Biasanya, sebabnya ialah sekatan dalam tetapan. Fail settings.json mungkin mengandungi peraturan deny yang menyekat pembacaan fail tertentu, lazimnya fail .env yang mengandungi kunci dan kata laluan. Ada juga tetapan yang menyekat sepenuhnya pembacaan apa-apa yang berada di luar folder kerja. Semak kedua-dua tempat dalam settings.json. Ingat juga bahawa sekatan .env ialah langkah perlindungan lalai; anda tidak patut membuangnya tanpa sebab yang kukuh.

Jika folder itu memang betul dan akses dibuka, tetapi Claude masih tidak mahu membaca satu fail tertentu, kemungkinan besar fail itu disekat. Sekatan disimpan dalam fail tetapan settings.json dan terdiri daripada dua jenis.

Jenis pertama ialah sekatan khusus pada fail tertentu. Dalam tetapan, sekatan ini merupakan peraturan deny dan paling lazimnya terpakai pada fail .env, tempat kunci dan kata laluan disimpan:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)"
    ]
  }
}

Peraturan sedemikian sengaja menyekat Claude daripada membaca fail yang ditentukan. Kunci dan kata laluan tidak patut masuk ke dalam perbualan dengan model, jadi .env dikunci secara lalai. Jika anda melihat Claude enggan membaca .env atau fail serupa yang mengandungi rahsia, itu memang disengajakan dan anda tidak patut membuang sekatan ini tanpa sebab yang meyakinkan.

Jenis kedua ialah sekatan umum terhadap segala-galanya di luar folder kerja. Tetapan blockReadsOutsideWorkingDirectories mengawalnya. Apabila dihidupkan, Claude enggan membaca sebarang fail di luar direktori kerja, walaupun anda cuba membukanya secara langsung. Jika tetapan itu bernilai true dan anda memerlukan fail luaran, tambahkan foldernya menggunakan /add-dir atau matikan sekatan tersebut:

{
  "permissions": {
    "blockReadsOutsideWorkingDirectories": false
  }
}

Tetapan ini diperkenalkan dalam versi 2.1.257. Jika anda sudah mencuba segala-galanya tetapi fail masih tidak boleh diakses, semak kedua-dua deny dan blockReadsOutsideWorkingDirectories.

Di Manakah Anda Patut Bermula Jika Claude Code Tidak Dapat Melihat Fail?

Perkara utama

Mula-mula semak folder: minta Claude memaparkan direktori semasa menggunakan pwd, kemudian bandingkan dengan lokasi projek. Jika kedua-duanya tidak sepadan, lancarkan semula Claude dari folder projek atau pergi ke sana menggunakan /cd. Perlukan fail daripada folder bersebelahan? Bukanya dengan /add-dir. Tidak dapat melihat fail dalam subfolder? Berikan laluannya secara terus kepada Claude. Fail tiada dalam menu @? Ini berkaitan dengan .gitignore — tukar respectGitignore. Satu fail terkunci? Cari sekatan deny dalam settings.json.

Berikut ialah pelan ringkas yang boleh anda ikuti dari awal hingga akhir.

  1. Semak folder kerja: minta Claude memaparkan direktori semasa menggunakan pwd dan bandingkan dengan lokasi projek.
  2. Jika foldernya berbeza, lancarkan semula Claude dari folder yang betul (cd project, kemudian claude) atau pergi ke sana menggunakan arahan /cd.
  3. Perlukan fail daripada folder bersebelahan? Tambahkannya dengan /add-dir atau flag --add-dir semasa melancarkan Claude.
  4. Fail daripada subfolder tiada dalam konteks? Berikan laluannya secara terus kepada Claude atau minta Claude membaca fail itu.
  5. Fail tiada dalam menu @? Puncanya ialah .gitignore. Tetapkan respectGitignore kepada false atau nyahpilih kotak dalam /config.
  6. Satu fail tertentu terkunci? Semak peraturan deny dan blockReadsOutsideWorkingDirectories dalam settings.json.

Dalam sembilan daripada sepuluh kes, langkah pertama menyelesaikan semuanya: Claude dilancarkan dari folder yang salah. Akses fail ialah asas, tetapi ia tidak akan membina projek untuk anda. Saya telah menerangkan secara terperinci cara membina konteks di sekeliling Claude supaya ia sentiasa mengingati seluruh projek dan tidak kehilangan jejak dalam panduan saya tentang Otak Kedua dalam Claude Code.

Sumber

Cari bahan tambahan tentang penggunaan alat dalam dokumentasi Ailoot.

Butiran lanjut

Soalan lazim: Claude Code Tidak Dapat Melihat Fail Projek: Sebab dan Perkara yang Perlu Dilakukan pada 2026

Mengapakah melancarkan dari home berbeza daripada projek bersebelahan?

Projek di bawah direktori home ialah keturunan, jadi bermula dari home tidak meletakkannya di luar pepohon kerja; ia memberikan konteks lebih luas daripada dikehendaki. Saudara folder kerja berada di luarnya. Bandingkan laluan penuh sebelum mendiagnosis akses tiada.

Adakah akses subfolder bermakna failnya sudah dalam konteks?

Tidak. Berikan laluan fail dan minta ejen membacanya. Jika pembacaan ditolak, periksa kebenaran berkenaan; fail tidak tersenarai dalam menu pilihan dan pembacaan fail ditolak ialah masalah berbeza.

Semua artikel